ManuscriptC'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. Our contribution is centered on a novel technique for finding volatile bugs and a novel technique for working around them. First, we present access sum...
Despite much recent interest in compiler fuzzing, the practical impact of fuzzer-found miscompilatio...
Compilers are at the foundation of software security. On the one hand, compilers are an ideal place ...
International audienceCompilers sometimes generate correct sequential code but break the concurrency...
C’s volatile qualifier is intended to provide a reliable link between operations at the source-code ...
ManuscriptCompilers should be correct. To improve the quality of C compilers, we created Csmith, a r...
posterTesting embedded software is difficult. • Further complicated by presence of memory and typ...
Despite much recent interest in randomised testing (fuzzing) of compilers, the practical impact of f...
Despite much recent interest in randomised testing (fuzzing) of compilers, the practical impact of f...
International audienceGiven the complexity and sophistication of code generation and optimization al...
Compiler fuzzing techniques require a means of generating programs that are free from undefined beha...
Despite much recent interest in compiler randomized testing (fuzzing), the practical impact of fuzze...
Obtaining secure systems software is notoriously hard. One reason is the continuing use of unsafe la...
Abstract—Modern software systems are increasingly config-urable. Conditional compilation based on C ...
The correctness of compilers is instrumental in the safety and reliability of other software systems...
System programming languages such as C grant compiler writers freedom to generate efficient code for...
Despite much recent interest in compiler fuzzing, the practical impact of fuzzer-found miscompilatio...
Compilers are at the foundation of software security. On the one hand, compilers are an ideal place ...
International audienceCompilers sometimes generate correct sequential code but break the concurrency...
C’s volatile qualifier is intended to provide a reliable link between operations at the source-code ...
ManuscriptCompilers should be correct. To improve the quality of C compilers, we created Csmith, a r...
posterTesting embedded software is difficult. • Further complicated by presence of memory and typ...
Despite much recent interest in randomised testing (fuzzing) of compilers, the practical impact of f...
Despite much recent interest in randomised testing (fuzzing) of compilers, the practical impact of f...
International audienceGiven the complexity and sophistication of code generation and optimization al...
Compiler fuzzing techniques require a means of generating programs that are free from undefined beha...
Despite much recent interest in compiler randomized testing (fuzzing), the practical impact of fuzze...
Obtaining secure systems software is notoriously hard. One reason is the continuing use of unsafe la...
Abstract—Modern software systems are increasingly config-urable. Conditional compilation based on C ...
The correctness of compilers is instrumental in the safety and reliability of other software systems...
System programming languages such as C grant compiler writers freedom to generate efficient code for...
Despite much recent interest in compiler fuzzing, the practical impact of fuzzer-found miscompilatio...
Compilers are at the foundation of software security. On the one hand, compilers are an ideal place ...
International audienceCompilers sometimes generate correct sequential code but break the concurrency...