This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Clean up extern inline
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