Latest Blog Posts
Creative compilers can be a safety risk
The most safety-critical software tool in your application development process is the compiler. It generates virtually all the code in the application binary. However, modern compilers can be exceptionally creative in constructing...
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...
Precise control over test generation with Tempest2
In the last blog of our trilogy about test generators, we’ll explain Tempest2. You might have seen it mentioned in a previous blog but now we show additional perspectives. On the face of it, Tempest2 may look a lot like our original...
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...
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....
Assessing C and C++ toolchains used in robotics
The traditional industrial robot consists of an arm with multiple degrees of freedom and a specialized gripper. To prevent accidental injury to humans, it is typically incarcerated in a protective cage. However, next-generation...
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...
Before compiler qualification comes use case analysis
Compilers comprise a complex pipeline of analysis and transformation stages. Changes in one stage are frequently amplified by subsequent stages. It makes compilers very sensitive to configuration, with a seemingly minor change to the...
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...
C++ library qualification: cherry picking functions versus full headers
We are pleased to see many companies in the automotive, industrial, medical, aviation, robotics and railway industries taking the safety of critical C++ applications seriously. With the latest safety-critical applications handling...