Latest Blog Posts

The ‘A’ Team comes to the rescue of code coverage analysis
Code coverage analysis… what is it and why is it vital when qualifying libraries? And why have Solid Sands and Rapita Systems got together to form an ‘A’ Team that will improve code coverage analysis on parts of the C++ standard...

C++ != (C+=1)
Due to the high demand for C++ Standard Library qualification, we are actively developing tests, test specifications, and requirements for the C++ standard library in SuperGuard. Everyone knows that C++ is based on C and preserves...

A compiler test suite that’s built for the job
We are often asked what differentiates SuperTest from open-source test suites for C and C++. If you are using the LLVM or GCC test suite, and even apply fuzz-testing, why would you also use SuperTest? You have a pretty good compiler...

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...