summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-09 06:30:03 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-09 06:30:03 +0000
commit0c5e3a3d7a2fd55eb181c35ea7423fdb0c3e3b61 (patch)
treeb078bd18fbfd08b7038db568253cd7312a08964d
parent8c044a9cfcda1c80167b0e393e620dc6483b1974 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/dg.exp2
-rw-r--r--gcc/testsuite/gcc.dg/pr24101-1.i4
-rw-r--r--gcc/testsuite/gcc.dg/pr24101-2.i4
-rw-r--r--gcc/toplev.c5
-rw-r--r--libcpp/ChangeLog8
-rw-r--r--libcpp/init.c2
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)