diff options
author | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-09 06:30:03 +0000 |
---|---|---|
committer | uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-09 06:30:03 +0000 |
commit | 0c5e3a3d7a2fd55eb181c35ea7423fdb0c3e3b61 (patch) | |
tree | b078bd18fbfd08b7038db568253cd7312a08964d | |
parent | 8c044a9cfcda1c80167b0e393e620dc6483b1974 (diff) | |
download | gcc-0c5e3a3d7a2fd55eb181c35ea7423fdb0c3e3b61.tar.gz |
libcpp/
PR c/24101
* init.c (read_original_filename): Temporarily set
state.in_directive before calling _cpp_lex_direct for
CPP_HASH tokens.
gcc/
PR c/24101
* toplev.c (process_options): Initialize debug_hooks early
in case lang_hooks.post_options ends up calling a debug_hook.
gcc/testsuite/
PR c/24101
* gcc.dg/pr24101-1.i, gcc.dg/pr24101-2.i: New tests.
* gcc.dg/dg.exp: Run main loop also for *.i files.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106677 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/dg.exp | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr24101-1.i | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr24101-2.i | 4 | ||||
-rw-r--r-- | gcc/toplev.c | 5 | ||||
-rw-r--r-- | libcpp/ChangeLog | 8 | ||||
-rw-r--r-- | libcpp/init.c | 2 |
8 files changed, 36 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5e86d193a40..c9836318d76 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-11-09 Per Bothner <per@bothner.com> + Uros Bizjak <uros@kss-loka.si> + + PR c/24101 + * toplev.c (process_options): Initialize debug_hooks early + in case lang_hooks.post_options ends up calling a debug_hook. + 2005-11-08 Jakub Jelinek <jakub@redhat.com> * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8058bb84e5c..d0bd89e28e8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2005-11-09 Uros Bizjak <uros@kss-loka.si> + + PR c/24101 + * gcc.dg/pr24101-1.i, gcc.dg/pr24101-2.i: New tests. + * gcc.dg/dg.exp: Run main loop also for *.i files. + 2005-11-08 Jakub Jelinek <jakub@redhat.com> PR c++/19450 diff --git a/gcc/testsuite/gcc.dg/dg.exp b/gcc/testsuite/gcc.dg/dg.exp index 00b26d6e394..826bcf3f3a5 100644 --- a/gcc/testsuite/gcc.dg/dg.exp +++ b/gcc/testsuite/gcc.dg/dg.exp @@ -29,7 +29,7 @@ if ![info exists DEFAULT_CFLAGS] then { dg-init # Main loop. -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \ +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cSi\]]] \ "" $DEFAULT_CFLAGS # All done. diff --git a/gcc/testsuite/gcc.dg/pr24101-1.i b/gcc/testsuite/gcc.dg/pr24101-1.i new file mode 100644 index 00000000000..45c165539b6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr24101-1.i @@ -0,0 +1,4 @@ +/* { dg-do compile } */ +/* { dg-options "-ansi" } */ + +# 1 "/usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/include/stddef.h" 1 3 4 diff --git a/gcc/testsuite/gcc.dg/pr24101-2.i b/gcc/testsuite/gcc.dg/pr24101-2.i new file mode 100644 index 00000000000..501382da4b6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr24101-2.i @@ -0,0 +1,4 @@ +/* { dg-do compile } */ +/* { dg-options "-ansi" } */ + +# diff --git a/gcc/toplev.c b/gcc/toplev.c index eea9ab20ead..b03e91dc999 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1493,6 +1493,10 @@ general_init (const char *argv0) static void process_options (void) { + /* Just in case lang_hooks.post_options ends up calling a debug_hook. + This can happen with incorrect pre-processed input. */ + debug_hooks = &do_nothing_debug_hooks; + /* Allow the front end to perform consistency checks and do further initialization based on the command line options. This hook also sets the original filename if appropriate (e.g. foo.i -> foo.c) @@ -1652,7 +1656,6 @@ process_options (void) default_debug_hooks = &vmsdbg_debug_hooks; #endif - debug_hooks = &do_nothing_debug_hooks; if (write_symbols == NO_DEBUG) ; #if defined(DBX_DEBUGGING_INFO) diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 3b14dabf134..747e45adc72 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,11 @@ +2005-11-09 Per Bothner <per@bothner.com> + Uros Bizjak <uros@kss-loka.si> + + PR c/24101 + * init.c (read_original_filename): Temporarily set + state.in_directive before calling _cpp_lex_direct for + CPP_HASH tokens. + 2005-11-03 James E Wilson <wilson@specifix.com> PR preprocessor/24202 diff --git a/libcpp/init.c b/libcpp/init.c index 3074f96b5c8..bbf2705b46c 100644 --- a/libcpp/init.c +++ b/libcpp/init.c @@ -497,8 +497,10 @@ read_original_filename (cpp_reader *pfile) token = _cpp_lex_direct (pfile); if (token->type == CPP_HASH) { + pfile->state.in_directive = 1; token1 = _cpp_lex_direct (pfile); _cpp_backup_tokens (pfile, 1); + pfile->state.in_directive = 0; /* If it's a #line directive, handle it. */ if (token1->type == CPP_NUMBER) |