This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: preprocessor/7263: __extension__ keyword doesn't suppress warning on LL or ULL constants


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!


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]