2008 · 75 citations · 7 references
ComputingComputer EngineeringComputer ScienceCompilersEmbedded SystemsOperating SystemsCompiler ConstructionEmbedded C ProgrammingEmbedded Operating SystemsOperating System VulnerabilitiesSoftware Fault ToleranceSafety-critical SoftwareVolatile MemoryVolatile Semantics
C's volatile qualifier is intended to provide a reliable link between operations at the source-code level and operations at the memory-system level. We tested thirteen production-quality C compilers and, for each, found situations in which the compiler generated incorrect code for accessing volatile variables. This result is disturbing because it implies that embedded software and operating systems---both typically coded in C, both being bases for many mission-critical and safety-critical applications, and both relying on the correct translation of volatiles---may be being miscompiled.
7
Nicholas Nethercote, Julian Seward · 2007 · 2.3K citations
Differential Testing for Software.
W. M. McKeeman · 1998 · 454 citations
Using the GNU Compiler Collection
Richard Stallman · Molecular Immunology · 2010 · 273 citations
Random testing of C calling conventions
Christian Lindig · 2005 · 70 citations