diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-opts.c | 20 |
2 files changed, 20 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 24f210b..b9b6795 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2010-05-11 Jakub Jelinek <jakub@redhat.com> + * c-opts.c (c_common_parse_file): If start_end_main_source_file, + don't call start_source_file debug hook here... + (finish_options): ... but here, after outputting predefined and + command line defines and undefs. + PR middle-end/44071 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have no fallthru edge. diff --git a/gcc/c-opts.c b/gcc/c-opts.c index b721157..d57cf91 100644 --- a/gcc/c-opts.c +++ b/gcc/c-opts.c @@ -1388,9 +1388,6 @@ c_common_parse_file (int set_yydebug) i = 0; for (;;) { - /* Start the main input file, if the debug writer wants it. */ - if (debug_hooks->start_end_main_source_file) - (*debug_hooks->start_source_file) (0, this_input_filename); finish_options (); pch_init (); push_file_scope (); @@ -1649,6 +1646,11 @@ finish_options (void) } } + /* Start the main input file, if the debug writer wants it. */ + if (debug_hooks->start_end_main_source_file + && !flag_preprocess_only) + (*debug_hooks->start_source_file) (0, this_input_filename); + /* Handle -imacros after -D and -U. */ for (i = 0; i < deferred_count; i++) { @@ -1663,8 +1665,16 @@ finish_options (void) } } } - else if (cpp_opts->directives_only) - cpp_init_special_builtins (parse_in); + else + { + if (cpp_opts->directives_only) + cpp_init_special_builtins (parse_in); + + /* Start the main input file, if the debug writer wants it. */ + if (debug_hooks->start_end_main_source_file + && !flag_preprocess_only) + (*debug_hooks->start_source_file) (0, this_input_filename); + } include_cursor = 0; push_command_line_include (); |