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