Using EventB to Create a Virtual Machine Instruction Set Architecture
ABZ '08 Proceedings of the 1st international conference on Abstract State Machines, B and Z
Volatiles are miscompiled, and what to do about it
EMSOFT '08 Proceedings of the 8th ACM international conference on Embedded software
Finding and understanding bugs in C compilers
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Compiler testing via a theory of sound optimisations in the C11/C++11 memory model
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.01 |
A simple technique is presented for testing a C99 compiler, bycomparing its output with the output from pre-existing tools. Theadvantage to this approach is that new test cases can be added inbulk from existing sources, reducing the need for in-depthinvestigation of correctness issues and for creating new test codeby hand. This technique was used in testing the PalmSource PalmOS® Cobalt ARM C/C++ cross-compiler for Palm-Powered®personal digital assistants, primarily for standards compliance andthe correct execution of generated code. The technique describedhere found several hundred bugs, mostly in our in-house code, butalso in longstanding high-quality front- and back-end code fromEdison Design Group and Apogee Software. It also found 18 bugs inthe GNU C compiler, as well as a bug specific to the Apple versionof GCC, a bug specific to the Suse version of GCC, and a dozen bugsin versions of GCC for the ARM processor, several of which werecritical. Copyright © 2007 John Wiley & Sons, Ltd.