The compiler is systematically tested for compliance with the ISO C or C++ standard.
Customer Experience
The Compiler Qualification Service allows compiler users to achieve the tool confidence level that is required by the functional safety standard. With SuperTest, our engineers qualify any compiler for your specific use case. The compiler is systematically tested for compliance with the ISO C or C++ standard. This process, and any compiler defects detected during qualification, are detailed in a comprehensive qualification report that matches the requirements of the applicable functional safety standard such as ISO 26262, IEC 61508 or EN 50128 / EN 50716. The report also includes a safety manual that describes the mitigations needed to avoid the compiler defects. Optionally, you can choose to get an Application Hazard Scanner to automatically enforce the safety manual. This way, you can ensure that the compiler can be used safely in your safety-critical software project.
SuperTest offers hand-crafted and generated test files, including millions of conformance tests to address quality and functional safety. It includes many tests aimed at compiler internals such as analyses, transformations and optimizations.
SuperTest includes a powerful and flexible test platform. The configurable test driver seamlessly integrates with any compiler development environment and target processor.
The Code Generator Trainer consists of nearly one thousand test files split over 25 carefully constructed levels aimed at boot-strapping new compiler development. Each level addresses a specific capability of the code generator. Level 0 is there to set up the minimal interface that is needed to run the tests. The next levels introduce simple integer arithmetic, conversions, pointers, addressing modes for structures, register allocation, control flow and calling conventions. Beyond that are levels dealing with characters and shorts, long long arithmetic and varargs.
Each level is constructed to build upon the groundwork of the previous levels. This way, the code generator development progresses one logical step at a time. It gets you a better compiler, faster.
We need to get your complete compilation environment, including any necessary software licenses. On top of that we need a copy of the target execution environment, so we can run the executables generated by the compiler for the tests and verify the results. Preferably, this is a hardware target that is as close as possible to the actual hardware used in your project. This provides the highest possible confidence that programs are correctly compiled for that specific target. Alternatively, the execution environment can be a simulator or emulator.
Before starting the qualification process, the configuration options need to be specified. These options define the use case for which the qualification is valid and, hence, should be equal to the options used for building your application. Most importantly, it should be clear for which language version the compiler is qualified. This determines the exact requirements that the compiler is tested against. We offer this service for any version of C (C90, C99, C11, C18 and Embedded C) or C++ (C++03, C++11, C++14, C++17 and C++20).
With your compiler and execution environment in place, we use SuperTest to assess the compiler’s compliance to the defined language, for your project’s compiler use case.
Functional safety standards require appropriate mitigations to be defined to make sure that your application is not impacted by any compiler defects that were found during the qualification process. Common mitigations include:
We offer an additional tool to automatically and systematically enforce the mitigations that are defined in the qualification report that results from the Compiler Qualification Service. BUGSENG’s ECLAIR platform for software verification is used to build the Application Hazard Scanner with the specific rules that are needed for the mitigations in the safety manual. The Application Hazard Scanner analyses and diagnoses your application source code and application build process for the usage of hazardous compiler features. It ensures that all mitigations are automatically enforced and that the compiler can be used safely. Example features of the Application Hazard Scanner are:
Home / Products / Compiler Qualification Service