Clean up extern inline

Gabriel Dos Reis gdr@cs.tamu.edu
Fri Feb 2 17:00:00 GMT 2007


Ian Lance Taylor <iant@google.com> writes:

| "Joseph S. Myers" <joseph@codesourcery.com> writes:
| 
| > > * If we see an "extern inline" function:
| > >   + If -fgnu-extern-inline is used, apply gnu89 semantics.
| > >   + Else, if the declaration is in a system header, apply gnu89
| > >     semantics.
| > >   + Else, if -std=c99 is used, but not -std=gnu99, issue an error.
| > 
| > I'd add that -fno-gnu-extern-inline should be an error in 4.1/4.2, and 
| > more generally in c89/gnu89 modes (the number of language dialects should 
| > be minimised).  But adding any diagnostics for this to 4.1 branch would be 
| > a mistake; it would make upgrading from 4.1.2 to 4.1.3 unsafe for some 
| > users.  (I don't think we should add such deprecation warnings to past 
| > release branches once they've had a release from them, at all, ever.)
| 
| I think this is a tough call.  I thought about that issue as well.
| The problem is that every time we change semantics, people complain
| that we need to give them warning.  And we are changing semantics in
| 4.3, and right now we aren't giving them any warning.  And warning for
| just one release series--4.2.x--is simply not long enough.


The release branches are supposed to be regression-fix branches only.
For 4.1.x, it would odd to add that switch in the second-to-last or
last release from the 4.1.x series and expect we cover up the issue.

I consider it important to go in 4.2.x though.

-- Gaby



More information about the Gcc-patches mailing list