From 456b8ce5dbc2f77b3506d18c7eaec25cf76cb573 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Wed, 9 Nov 2005 07:30:03 +0100 Subject: 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 --- libcpp/init.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libcpp/init.c') diff --git a/libcpp/init.c b/libcpp/init.c index 3074f96..bbf2705 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) -- cgit v1.1