aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2005-11-09 07:30:03 +0100
committerUros Bizjak <uros@gcc.gnu.org>2005-11-09 07:30:03 +0100
commit456b8ce5dbc2f77b3506d18c7eaec25cf76cb573 (patch)
treeb078bd18fbfd08b7038db568253cd7312a08964d /gcc/toplev.c
parent85e77c2176355b95565534e4bee77eb5672ccfe9 (diff)
downloadgcc-456b8ce5dbc2f77b3506d18c7eaec25cf76cb573.zip
gcc-456b8ce5dbc2f77b3506d18c7eaec25cf76cb573.tar.gz
gcc-456b8ce5dbc2f77b3506d18c7eaec25cf76cb573.tar.bz2
re PR c/24101 (Segfault with preprocessed source)
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. From-SVN: r106677
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index eea9ab2..b03e91d 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)