Commit 3c0d1020 by Daniel Berlin Committed by Daniel Berlin

re PR debug/20253 (Macro debug info broken due to lexer change)

2005-03-03  Daniel Berlin <dberlin@dbrelin.org>

	Fix PR debug/20253

	* c-opts.c (c_common_parse_file): Call start_source_file
	and end_source_file at the approriate times.

	* dwarf2out.c (dwarf2out_finish): Don't auto-end
	the main file, it will be done for us now.

From-SVN: r95872
parent 9bdae6af
2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
Fix PR debug/20253
* c-opts.c (c_common_parse_file): Call start_source_file
and end_source_file at the approriate times.
* dwarf2out.c (dwarf2out_finish): Don't auto-end
the main file, it will be done for us now.
2005-03-04 Kazu Hirata <kazu@cs.umass.edu> 2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c (fold_ternary): New. * fold-const.c (fold_ternary): New.
......
...@@ -1089,13 +1089,16 @@ c_common_parse_file (int set_yydebug) ...@@ -1089,13 +1089,16 @@ c_common_parse_file (int set_yydebug)
i = 0; i = 0;
for (;;) for (;;)
{ {
/* Start the main input file */
(*debug_hooks->start_source_file) (0, this_input_filename);
finish_options (); finish_options ();
pch_init (); pch_init ();
push_file_scope (); push_file_scope ();
c_parse_file (); c_parse_file ();
finish_file (); finish_file ();
pop_file_scope (); pop_file_scope ();
/* And end the main input file. */
(*debug_hooks->end_source_file) (0);
if (++i >= num_in_fnames) if (++i >= num_in_fnames)
break; break;
cpp_undef_all (parse_in); cpp_undef_all (parse_in);
......
...@@ -10497,8 +10497,12 @@ add_abstract_origin_attribute (dw_die_ref die, tree origin) ...@@ -10497,8 +10497,12 @@ add_abstract_origin_attribute (dw_die_ref die, tree origin)
if (TYPE_P (fn)) if (TYPE_P (fn))
fn = TYPE_STUB_DECL (fn); fn = TYPE_STUB_DECL (fn);
/* TYPE_STUB_DECL may have given us a NULL, which decl_function_context
won't like. */
if (fn)
fn = decl_function_context (fn);
fn = decl_function_context (fn);
if (fn) if (fn)
dwarf2out_abstract_function (fn); dwarf2out_abstract_function (fn);
} }
...@@ -13795,11 +13799,10 @@ dwarf2out_finish (const char *filename) ...@@ -13795,11 +13799,10 @@ dwarf2out_finish (const char *filename)
output_ranges (); output_ranges ();
} }
/* Have to end the primary source file. */ /* Have to end the macro section. */
if (debug_info_level >= DINFO_LEVEL_VERBOSE) if (debug_info_level >= DINFO_LEVEL_VERBOSE)
{ {
named_section_flags (DEBUG_MACINFO_SECTION, SECTION_DEBUG); named_section_flags (DEBUG_MACINFO_SECTION, SECTION_DEBUG);
dw2_asm_output_data (1, DW_MACINFO_end_file, "End file");
dw2_asm_output_data (1, 0, "End compilation unit"); dw2_asm_output_data (1, 0, "End compilation unit");
} }
......
/* Test to make sure the mcaro info includes a start file command for the main source */
/* { dg-do compile */
/* { dg-options "-g3 -gdwarf-2 -dA -fverbose-asm" } */
/* { dg-final { scan-assembler "Start new file" } } */
#define ADD(x) (M + x)
int main (void)
{
#define N 28
#define M 42
return ADD(N);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment