There are several obscure cases of mis-using struct, union, and enum tags that are not detected as errors by the compiler.
When
-pedantic-errors
is specified, GNU C will incorrectly give an error message when a function name is specified in an expression involving the comma operator.
Loop unrolling doesn't work properly for certain C++ programs. This is a bug in the C++ front end. It sometimes emits incorrect debug info, and the loop unrolling code is unable to recover from this error.