Brian M. Carlson wrote:
This would have (or at least should have) been caught, because gcc 3.3 introduced a complete incompatibility with older versions: creating an error when pasting together two such tokens. I don't know what the standard says on this issue, but at most it requires a diagnostic, and a warning suffices. Changing the warning to an error breaks *a lot* of code that otherwise works, including the kernel.
The standard says this is undefined behaviour. The code never "worked", but by pure accident produced the expected result.
If a .c file doesn't turn into a .o file, and it did with 3.2 [0], that's a regression, and therefore a bug. You can argue for all eternity
Not if it isn't a valid C source file.
that it's not bug, but a feature, and I'll tell you that if Debian ever ships any version of gcc in unstable that doesn't compile the kernel, that's a bug.
...but not necessarily a bug in the compiler. Segher