From 8a7a6f4ded855d2fc07bc9c331b1058594bbe479 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Mon, 6 Oct 2003 15:25:19 -0700 Subject: [PATCH] Fix -feliminate-dwarf2-dups ICE. gcc * dwarf2out.c (is_main_source): Remove variable. (dwarf2out_start_source_file): Do not check is_main_source. Do not reset is_main_source. (dwarf2out_init): Do not initialize is_main_source. testsuite * gcc.dg/debug/dwarf2-3.h: New test. * gcc.dg/debug/dwarf2-3.c: New test case for -feliminate-dwarf2-dups. From-SVN: r72166 --- gcc/ChangeLog | 7 +++++++ gcc/dwarf2out.c | 11 +---------- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/debug/dwarf2-3.c | 13 +++++++++++++ gcc/testsuite/gcc.dg/debug/dwarf2-3.h | 9 +++++++++ 5 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2-3.c create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2-3.h diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fd59fc86f70..6a6dc5d35f1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-10-06 Devang Patel + + * dwarf2out.c (is_main_source): Remove variable. + (dwarf2out_start_source_file): Do not check is_main_source. + Do not reset is_main_source. + (dwarf2out_init): Do not initialize is_main_source. + 2003-10-06 Rainer Orth * fixinc/inclhack.def (stdio_va_list): Removed _ap fix. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 9a23c76b79e..2642e81ceae 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -3443,12 +3443,6 @@ static unsigned long next_die_offset; /* Record the root of the DIE's built for the current compilation unit. */ static GTY(()) dw_die_ref comp_unit_die; -#ifdef DWARF2_DEBUGGING_INFO -/* We need special handling in dwarf2out_start_source_file if it is - first one. */ -static int is_main_source; -#endif - /* A list of DIEs with a NULL parent waiting to be relocated. */ static GTY(()) limbo_die_node *limbo_die_list; @@ -12285,7 +12279,7 @@ dwarf2out_source_line (unsigned int line, const char *filename) static void dwarf2out_start_source_file (unsigned int lineno, const char *filename) { - if (flag_eliminate_dwarf2_dups && !is_main_source) + if (flag_eliminate_dwarf2_dups) { /* Record the beginning of the file for break_out_includes. */ dw_die_ref bincl_die; @@ -12294,8 +12288,6 @@ dwarf2out_start_source_file (unsigned int lineno, const char *filename) add_AT_string (bincl_die, DW_AT_name, filename); } - is_main_source = 0; - if (debug_info_level >= DINFO_LEVEL_VERBOSE) { named_section_flags (DEBUG_MACINFO_SECTION, SECTION_DEBUG); @@ -12396,7 +12388,6 @@ dwarf2out_init (const char *filename ATTRIBUTE_UNUSED) invoked when the given (base) source file was compiled. We will fill in this value in dwarf2out_finish. */ comp_unit_die = gen_compile_unit_die (NULL); - is_main_source = 1; VARRAY_TREE_INIT (incomplete_types, 64, "incomplete_types"); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 48761b7cb2c..6c87236fe2e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-10-06 Devang Patel + + * gcc.dg/debug/dwarf2-3.h: New test. + * gcc.dg/debug/dwarf2-3.c: New test case for -feliminate-dwarf2-dups. + 2003-10-06 Wolfgang Bangerth * g++.dg/opt/cfg2.C: New test. diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2-3.c b/gcc/testsuite/gcc.dg/debug/dwarf2-3.c new file mode 100644 index 00000000000..f0c129c6026 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2-3.c @@ -0,0 +1,13 @@ +/* Test -feliminate-dwarf2-dups */ +/* Contributed by Devang Patel */ +/* { dg-do compile } */ +/* { dg-options "-feliminate-dwarf2-dups" } */ + +#include "dwarf2-3.h" + +int main() +{ + struct point p; + p.x = 0; + p.y = 0; +} diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2-3.h b/gcc/testsuite/gcc.dg/debug/dwarf2-3.h new file mode 100644 index 00000000000..26ad0bace22 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2-3.h @@ -0,0 +1,9 @@ +/* Test -feliminate-dwarf2-dups */ +/* Contributed by Devang Patel */ + +struct point +{ + int x; + int y; +}; +