Can someone explain why CompCert is not more popular? A formally verified compiler seems to be much more useful than something that can produce bugs.
Also, for the vast majority of programs the possibility of bugs in the compiler is not really that impactful in terms of total effect on reliability.
2. GCC is not even the best optimizing compiler out there. Intel's C compiler puts GCC to shame for some tasks.
The prohibition on commercial use is a much bigger barrier, I expect.
In the second form above, main is called with argc equal to zero and argv equal to the NULL pointer. The program does not, therefore, have access to command-line arguments.