Not all are implemented or commonly used. Complex maths?
Only if you do the full tests. And document all the unspecified, undefined and implementation specific behaviour the standard permits/
Not at all. Also the Plum-Hall and Perennial are independent tests. Writing your own tests proves little.
Correct. There is generally no need for users doing no safety critical or mission critical work to know the test results. You just need to know that the compiler manufacturer is taking all reasonable steps to go a good compiler.
When you get to Safety Critical the burden of checking is on you not the tool company to check suitability.
Certainly not.
Plum-Hall and Perennial test the standard C. Then you document the differences between the compiler and the Standard C. There are also other test suites internal to the compiler company such as build tests etc that you look at.
Validating a compiler usually requires an NDA with the compiler manufacturer to look at their other tests, development and build procedures.
This is not required for the majority but it is for Safety Critical. If there is an error in the system people get killed and you end up in court.
They should... but is [plain] char singed or unsigned ? It's not just the libraries. It is YOUR code as well. Do you pass a signed char or unsigned char to the libraries?
This is a problem if you use MISRA-C and or static analysis. It *may* also change if you change libraries.
Yes.
Quite.
Yes. There is more to it than just the one test suite.
Yes. However the libraries use [plain] char. This is something we have debated several times in the MISRA meetings.
The problem is the ISO -C teams do not want to enforce it one way or the other as it will break many compilers and much source code.
I agree. Best to avoid some things.
No if specified it will be well tested.
Yes but there are several thousand "I"s who all want to use the compiler differently
But what about those who do and never drive it in conditions over +2? The problem is (and I have see this many times) is what is "normal" for one users is abnormal for another. There is no "normal" that 95% of users agree on.
Otherwise we would ditch the hosted versions of C. The vast majority of C development is on embedded systems.....
You don't need them. Only those doing safety critical work do.
You don't but others do. The compiler company needs to test to all users. The validation for critical use also has to test the whole tool
You can only test the binary. The source is as everyone points out modifiable by the user.
Standard compiler system libraries?
Then you specify which you test on.
Then you test all of them if that is what is supplied. BTW we do I misunderstood what you meant.
Yes. That is why compiler Validation is not a simple thing.
No. Not VERY restricted. For example we test the IAR compilers. They run on Windows. We use XP for that. We test with all variants of their standard library. Usually on multiple targets. This can take a couple of days.
No idea.
For SIL4 you need to do that. For SIL0-3 you can use independent validation on a reference platform similar to the one you use.
Yes.
Yes. Not simple either. For the tools you are not validating the process used to build the tools just that for the following set of legal inputs you get the following legal outputs. However looking at the compiler manufactures system does increase confidence and due diligence.
Plum Hall does not do assembler testing AFAIK Neither does Perennial
Of course I will worry about it... I am curious. Not you have mentioned it :-)