Blog

We have a Csmith-proof framework
Pascal Cuoq on 30 July 2011

Csmith that I mentioned earlier in this blog is a random generator of C programs. That much sounds easy but it generates only well-defined programs which two or more compilers have no excuse for compiling into executables that produce different results. And it generates varied and interesting enough C programs...

Read More

Animated donut: quickly sorting out alarms
Pascal Cuoq on 29 July 2011

This post follows that post. It is a brief survey of the alarms obtained when analyzing donut.c such as a programmer might do when ey is only trying to find bugs or in the context of verification as a first step to get an estimate on the difficulty of the...

Read More

Fun with usual arithmetic conversions
Pascal Cuoq on 26 July 2011

A facetious colleague reports the following program as a bug: int main () { signed char c=0; while(1) c++; return 0; } The commandline frama-c -val -val-signed-overflow-alarms charpp.c, he says, does not emit any alarm for the c++; instruction. Indeed, the c++; above is equivalent to c = (signed char)...

Read More

Animated donut verification
Pascal Cuoq on 22 July 2011

Here's a cool obfuscated C program by Andy Sloane that draws a revolving donut. You know where this is heading... I am going to suggest that someone should verify it. I will get us started. 1. Download the code 2. Determine what library functions it needs: $ frama-c -metrics donut.c...

Read More

Back to the drawing board
Pascal Cuoq on 21 July 2011

This post is a backward changelog that introduces actual new features. Beat that, Emacs 19 Antinews! Shortly after the release of Carbon, I offered to my Frama-C co-developers the idea of a great clean-up of the value analysis for the next release. This would not immediately add new features (indeed,...

Read More