summaryrefslogtreecommitdiffstats
path: root/gcc/cppfiles.c
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2000-10-30 22:29:00 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2000-10-30 22:29:00 +0000
commit396ffa866b4e8c2ac1d3b2ec6f1f687cfdd4568b (patch)
treeaea40a1085df8546a232c08b4db9f87353674441 /gcc/cppfiles.c
parent20b8559294988448711df71d29e657bd12e3ea8f (diff)
downloadppe42-gcc-396ffa866b4e8c2ac1d3b2ec6f1f687cfdd4568b.tar.gz
ppe42-gcc-396ffa866b4e8c2ac1d3b2ec6f1f687cfdd4568b.zip
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37147 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cppfiles.c')
-rw-r--r--gcc/cppfiles.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c
index f54fe8a155a..1009fa784a1 100644
--- a/gcc/cppfiles.c
+++ b/gcc/cppfiles.c
@@ -206,6 +206,9 @@ stack_include_file (pfile, inc)
{
cpp_buffer *fp;
+ if (pfile->context->prev)
+ cpp_ice (pfile, "attempt to push file buffer with contexts stacked");
+
if (DO_NOT_REREAD (inc))
return 0;
OpenPOWER on IntegriCloud