Latest Blog Posts

Are we all talking the same language?

Are we all talking the same language?

Telling the compiler which version of the language you are using is essential because it improves the portability of your code at very little expense. Additionally, in safety and mission-critical applications, you must verify that...

read more
Verifying the compiler’s pipework

Verifying the compiler’s pipework

Compilers are highly complex machines with two areas that deserve extra scrutiny. They are the register allocator and the calling convention. While register allocation is the subject of countless research papers, the calling...

read more
Can your compiler count to ten?

Can your compiler count to ten?

The size of integers and other primitive types is not fixed by the C/C++ programming language specifications. It is implementation-defined. Unlike unspecified and undefined behavior, that is not a free lunch for the compiler....

read more
Automation saves time and is more accurate

Automation saves time and is more accurate

As we pointed out in the previous blog, before we qualify a compiler for a safety-critical project, it’s essential we know all the compiler options that the project intends to use. With typical projects being highly complex, like a...

read more
SuperTest and Frama-C: a clash of titans

SuperTest and Frama-C: a clash of titans

CEA List and Solid Sands entered into a partner agreement to make SuperTest available to the Frama-C team. Frama-C is a platform for source-code analysis of C software. The Frama-C analyzers assist with various source-code-related...

read more
The disadvantages of undefined behavior

The disadvantages of undefined behavior

In the previous blog I argued in favor of undefined behavior in C. The behaviors I was talking about, such as integer overflow, would be inefficient or counter-intuitive if they were defined. Nevertheless, it does mean that in their...

read more