Sciweavers

76
Voted
EMSOFT
2008
Springer

Volatiles are miscompiled, and what to do about it

14 years 10 months ago
Volatiles are miscompiled, and what to do about it
C's volatile qualifier is intended to provide a reliable link between operations at the source-code level and operations at the memorysystem 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. Our contribution is centered on a novel technique for finding volatile bugs and a novel technique for working around them. First, we present access summary testing: an efficient, practical, and automatic way to detect code-generation errors related to the volatile qualifier. We have found a number of compiler bugs by performing access summary testing on randomly generated C programs. Some of these bug...
Eric Eide, John Regehr
Added 19 Oct 2010
Updated 19 Oct 2010
Type Conference
Year 2008
Where EMSOFT
Authors Eric Eide, John Regehr
Comments (0)