Jakub Jelinek wrote:
> You are probably looking for bug compatibility, and that isn't something
> GCC guarantees, definitely not between major versions.

And that's one half of what I'm complaining about.

> The C/C++ standards (and standards governing the extensions to the
> languages) is what matters, if you write standard conforming code, GCC
> won't (intentionally) start rejecting it.  But if you have code that
> happens to compile because of some GCC bug, eventhough it was invalid, or
> some C/C++ defect report clarifies some corner case, you need to be
> prepared to fix up your code.

What about those documented extensions that got deprecated and later 
removed? That's the second half of what I'm complaining about: even things 
which are NOT bugs but documented extensions get deprecated and soon later 
removed.

IMHO a compiler should accept code whenever there's a sane interpretation of 
it, no matter whether it conforms to some standard or not (in fact, this 
used to be a GCC design principle, but sadly no longer is these days), and 
code which has been compiling for years definitely has a sane 
interpretation.

(If you ever look at TIGCC, you'll also notice that TIGCC's GCC is patched 
to re-add things like multi-line string literals, lvalue casts, labels at 
the end of compound statements etc. More and more patches I'm applying to 
the GCC in TIGCC are to readd things GCC removed. TIGCC also enables -fms-
extensions by default (in C, this allows at least unnamed struct/union 
fields). I haven't been updating TIGCC's GCC in a while, but I'm sure that 
if I do, there'll be another bunch of such patches to add. And that's only 
for C, g++ is much worse.)

        Kevin Kofler

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel

Reply via email to