This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: preprocessor/7263: __extension__ keyword doesn't suppress warning on LL or ULL constants
- From: "Christian Ehrhardt" <ehrhardt at mathematik dot uni-ulm dot de>
- To: Neil Booth <neil at daikokuya dot co dot uk>
- Cc: andrew at andypo dot net, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, nobody at gcc dot gnu dot org, gcc-gnats at gcc dot gnu dot org
- Date: Tue, 10 Dec 2002 11:36:37 +0100
- Subject: Re: preprocessor/7263: __extension__ keyword doesn't suppress warning on LL or ULL constants
- References: <20021209231018.16068.qmail@sources.redhat.com> <20021210002256.GB13463@daikokuya.co.uk>
On Tue, Dec 10, 2002 at 12:22:56AM +0000, Neil Booth wrote:
> ehrhardt@mathematik.uni-ulm.de wrote:-
>
> > I can confirm this on recent 3.3. The warning is from the preprocessor
> > where we don't know about __extension__. Maybe the fix is to just
> > document this. Anyway: Category changed to preprocessor and priority
> > raised to medium because this is technically a regression.
>
> I think we just document __extension__ as only applying to non-CPP issues;
> we can't reasonably expect CPP to interact with a parser in all situations
> and under all future code changes. I imagine we could enhance existing
> code so that we don't have this problem in cases where it is the C front
> end requesting the number interpretation, since it could easily pass a
> "don't warn about foo" flag to cpplib. However expecting cpplib to get
> it right for #if is not reasonable, seeing as #if can occur between any
> two tokens.
The real problem seems to be that cpplib has its own copy of warning options
in pfile->cpp_opts. The C parser disables the global pedantic flag while
__extension__ is in effect. However, this change is not propagated into
cpp_opts. If this was done we could just add the pedantic check in
cppexp.c. However, neither do I see a clean way to propagate the global
pedantic flag into cpp_opts nor to check the global flag from cpplib.
regards Christian
--
THAT'S ALL FOLKS!