Compiler Failure Testing for Vehicle Software Coding Compliance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In the context of autonomous vehicles, the use of multiple compilers with varying enforcement of coding rules complicates ensuring reliable software execution, as different compilers may produce inconsistent results, leading to potential runtime errors.
Innovation Solution
A system for compiler failure testing is introduced, which includes a test bank with sample software code to verify that compilers enforce prescribed coding rules, ensuring consistent behavior across different build toolchains.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple compilers with varying enforcement of coding rules are used, then software development flexibility and adaptability improve, but software reliability and consistency deteriorate due to inconsistent compilation results
Solution Approach 1:
The patent enforces uniform coding rules across all compilers by using a standardized rule set (such as MISRA C:2012) that all compilers in the build toolchain must adhere to. This creates homogeneity in compilation behavior despite using multiple different compilers, ensuring consistent software reliability across diverse vehicle platforms while maintaining the ability to select different compilers for specific hardware targets
2Reliability
If strict coding rules are enforced by compilers, then software reliability improves by preventing erroneous code execution, but device complexity increases due to multiple compilers with different rule enforcement
Solution Approach 1:
The patent creates a universal coding rule framework that serves multiple compilers simultaneously. A single set of coding rules (e.g., MISRA C:2012) is configured to work across different compiler versions and types (GCC, Clang, ICC, etc.), allowing the same rule set to enforce reliability constraints universally without requiring separate rule configurations for each compiler, thus reducing build toolchain complexity
3Manufacturing precision
If compiler changes are made to improve software quality, then manufacturing precision improves, but the risk of introducing new errors increases without proper verification
Solution Approach 1:
The patent implements preliminary validation of compiler changes through automated testing frameworks that verify coding rule enforcement before compilers are deployed to production build toolchains. Test suites check that compiler updates maintain compliance with required coding standards (such as MISRA C:2012), preventing regressions and ensuring that precision improvements do not introduce new reliability issues
Data Source
AI summary
Compiler failure testing is used to test compilers for compiling software where a high degree of reliability is required, e.g., compilers for software that runs on automobiles. A compiler failure testing system includes tests for testing different coding rules. When a change is made to a software compiler, the failure testing system tests the software compiler's response to the tests. If the software compiler is enforcing prescribed coding rules (e.g., AUTOSAR and/or MISRA rules), the software compiler fails to compile the tests and returns an error message. If the software compiler successfully compiles a test, this indicates that the software compiler is not enforcing all of the prescribed coding rules. In this case, developers can be alerted to make needed changes to the software compiler, so that the software compiler properly enforces the coding rules.


