PulseExploreJournal ClubDebatesTrendingResearchersJournals
Instagram
HomeExploreJournal ClubTrending
Synapse
⌘+K
Synapse
September 19, 200571 citations

Random testing of C calling conventions

View Full Paper
CLChristian Lindig

Key Points

Key points are not available for this paper at this time.

Abstract

In a C compiler, function calls are difficult to implement correctly because they must respect a platform-specific calling convention. But they are governed by a simple invariant: parameters passed to a function must be received unaltered. A violation of this invariant signals an inconsistency in a compiler. We automatically test the consistency of C compilers using randomly generated programs. An inconsistency manifests itself as an assertion failure when compiling and running the generated code. The generation of programs is type-directed and can be controlled by the user with composable random generators in about 100 lines of Lua. Lua is a scripting language built into our testing tool that drives program generation. Random testing is fully automatic, requires no specification, yet is comparable in effectiveness with specification-based testing from prior work. Using this method, we uncovered 13 new bugs in mature open-source and commercial C compilers.

Ask AI
Helpful
Bookmark
Share
View Full Paper

Cite This Study

Christian Lindig (2005) studied this question.

synapsesocial.com/papers/6a1572a1814bf8ec9a4e9aedhttps://doi.org/10.1145/1085130.1085132
Ask AI
Helpful
Bookmark
Share
View Full Paper