-
Cheating at Research
My news feed this morning contained this article about an unpleasant local situation that has caused one person I know to lose her job (not because she was involved with the malfeasance, but as fallout from this lab shutting down). On the positive side (I’m going from the article and the investigating panel’s report here…
-
C-Reduce 2.1
Over the weekend we released a new version of C-Reduce, a tool for turning a large C/C++ program into a small one that still meets some criterion such as triggering a compiler bug. There are two major improvements since the last release about a year ago: We are now able to run “interestingness tests” in…
-
What Other Dynamic Checkers for C/C++ are Needed?
Detectors for memory-related undefined behaviors in C/C++, while being imperfect, are at least something that smart people have spent a lot of time thinking about. Integer-related undefined behaviors have received much less attention, but then again they are a lot simpler than memory unsafety. Today’s question is: What other checkers should we create? Here are…
-
Integer Undefined Behavior Detection using Clang 3.3
Undefined behaviors in C/C++ are harmful to developers: There are many kinds of undefined behavior They can be hard to understand Their effect changes depending on which compiler version you use, which compiler options you use, and they get worse every time an optimizer gets smarter Plenty of them aren’t reliably detected by any tool…
-
Type Punning, Strict Aliasing, and Optimization
One of the basic jobs of a low-level programming language like C or C++ is to make it easy to peek and poke at data representations, as opposed to providing opaque high-level abstractions. Access to representations supports grungy tasks such as JIT compiling, setting up page tables, driving peripherals, and communicating with machines that use…
-
Funniest Computer Book?
The other day Eric Eide noticed The UNIX Hater’s Handbook on my desk and remarked that there aren’t enough funny computer books. This is undeniably true. So now I’m trying to find the funniest computer book and I’d appreciate some help. Here are a few guidelines: Not really looking for a Dilbert collection. Let’s just…
-
Crashy Compiler Flags
This post is for fun, no deep thoughts will be presented. For a research project that’s not yet ready to write up, I needed a bunch real programs (as opposed to, for example, programs generated by Csmith) that cause compilers to crash. So I built a few hundred randomly chosen revisions of GCC and LLVM/Clang…