cppfiles.c (stack_include_file): Check for stacked contexts here.
* cppfiles.c (stack_include_file): Check for stacked contexts here. * cpphash.h (_cpp_do__Pragma): New prototype. * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table. * cpplex.c (skip_escaped_newlines): Only process trigraphs and escaped newlines if !(buffer->from_stage3). (_cpp_lex_token): Warn about missing newlines iff !buffer->from_stage3. * cpplib.c (get__Pragma_string, destringize, _cpp_do__Pragma): New functions. (run_directive): Set output_line for _Pragma to avoid line markers in output. Set from_stage3 and prevent macro expansion for _Pragma and command-line options. Check buffer exhaustion. (cpp_push_buffer): Don't check for stacked macro contexts, as this is perfectly legitimate for _Pragma. Move the check to stack_include_file instead. Set from_stage3 iff buffer is preprocessed input. * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments unsigned. New boolean from_stage3. (struct spec_nodes): Add n__Pragma. * cppmacro.c (enter_macro_context): Flip sense of return value. (_cpp_get_token): Handle _Pragma operator. From-SVN: r37147
Showing
- gcc/ChangeLog 29 additions, 0 deletionsgcc/ChangeLog
- gcc/cppfiles.c 3 additions, 0 deletionsgcc/cppfiles.c
- gcc/cpphash.h 1 addition, 0 deletionsgcc/cpphash.h
- gcc/cppinit.c 1 addition, 0 deletionsgcc/cppinit.c
- gcc/cpplex.c 55 additions, 49 deletionsgcc/cpplex.c
- gcc/cpplib.c 81 additions, 8 deletionsgcc/cpplib.c
- gcc/cpplib.h 7 additions, 1 deletiongcc/cpplib.h
- gcc/cppmacro.c 29 additions, 15 deletionsgcc/cppmacro.c
Loading
Please register or sign in to comment