diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2015-02-26 15:31:52 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2015-02-26 15:31:52 +0000 |
commit | b33da0c754077df1c40bdf929eb8c9ebc9e4de2b (patch) | |
tree | 2a79e58d028690cde55b2ac059a028a71f94dabf /gcc | |
parent | 75e0295b00aeeddbd4efb2e55ef3ed946f886a86 (diff) | |
download | gcc-b33da0c754077df1c40bdf929eb8c9ebc9e4de2b.zip gcc-b33da0c754077df1c40bdf929eb8c9ebc9e4de2b.tar.gz gcc-b33da0c754077df1c40bdf929eb8c9ebc9e4de2b.tar.bz2 |
re PR debug/46102 (ICE: SIGSEGV in dwarf2out_finish (dwarf2out.c:8490) with -feliminate-dwarf2-dups when using precompiled headers)
PR debug/46102
* dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
testsuite/
PR debug/46102
* g++.dg/debug/dwarf2-1.C: XFAIL and move...
* g++.dg/debug/dwarf2/dwarf2-1.C: ...here.
* g++.dg/debug/dwarf2-2.C: XFAIL and move...
* g++.dg/debug/dwarf2/dwarf2-2.C: ...here.
* g++.dg/debug/dwarf2/typedef5.C: XFAIL.
* g++.dg/debug/pr46123.C: XFAIL and move...
* g++.dg/debug/dwarf2/pr46123-2.C: ...here.
* gcc.dg/debug/dwarf2-3.c: Move...
* gcc.dg/debug/dwarf2/dwarf2-3.c: ...here.
From-SVN: r221016
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2-2.C | 17 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-1.C (renamed from gcc/testsuite/g++.dg/debug/dwarf2-1.C) | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-2.C | 19 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/pr46123-2.C (renamed from gcc/testsuite/g++.dg/debug/pr46123.C) | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/debug/dwarf2/typedef5.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-3.c (renamed from gcc/testsuite/gcc.dg/debug/dwarf2-3.c) | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-3.h (renamed from gcc/testsuite/gcc.dg/debug/dwarf2-3.h) | 0 |
10 files changed, 53 insertions, 19 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 73ef79d..047a158 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-02-25 Aldy Hernandez <aldyh@redhat.com> + + PR debug/46102 + * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups. + 2015-02-26 Sebastian Pop <s.pop@samsung.com> PR tree-optimization/65048 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index ebf41c8..6c8e51f 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -22621,6 +22621,14 @@ output_macinfo (void) static void dwarf2out_init (const char *filename ATTRIBUTE_UNUSED) { + /* This option is currently broken, see (PR53118 and PR46102). */ + if (flag_eliminate_dwarf2_dups + && strstr (lang_hooks.name, "C++")) + { + warning (0, "-feliminate-dwarf2-dups is broken for C++, ignoring"); + flag_eliminate_dwarf2_dups = 0; + } + /* Allocate the file_table. */ file_table = hash_table<dwarf_file_hasher>::create_ggc (50); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 41c0685..0d1b9b5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,16 @@ +2015-02-25 Aldy Hernandez <aldyh@redhat.com> + + PR debug/46102 + * g++.dg/debug/dwarf2-1.C: XFAIL and move... + * g++.dg/debug/dwarf2/dwarf2-1.C: ...here. + * g++.dg/debug/dwarf2-2.C: XFAIL and move... + * g++.dg/debug/dwarf2/dwarf2-2.C: ...here. + * g++.dg/debug/dwarf2/typedef5.C: XFAIL. + * g++.dg/debug/pr46123.C: XFAIL and move... + * g++.dg/debug/dwarf2/pr46123-2.C: ...here. + * gcc.dg/debug/dwarf2-3.c: Move... + * gcc.dg/debug/dwarf2/dwarf2-3.c: ...here. + 2015-02-26 Marek Polacek <polacek@redhat.com> PR c++/65202 diff --git a/gcc/testsuite/g++.dg/debug/dwarf2-2.C b/gcc/testsuite/g++.dg/debug/dwarf2-2.C deleted file mode 100644 index 9e6dbd2..0000000 --- a/gcc/testsuite/g++.dg/debug/dwarf2-2.C +++ /dev/null @@ -1,17 +0,0 @@ -// PR debug/27057 -// { dg-do compile } -// { dg-options "-g -feliminate-dwarf2-dups" } - -namespace N -{ -} - -struct A -{ - void foo (); -}; - -void A::foo () -{ - using namespace N; -} diff --git a/gcc/testsuite/g++.dg/debug/dwarf2-1.C b/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-1.C index e90d510..d0176ba 100644 --- a/gcc/testsuite/g++.dg/debug/dwarf2-1.C +++ b/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-1.C @@ -4,7 +4,7 @@ // PR 24824 // Origin: wanderer@rsu.ru -// { dg-options "-feliminate-dwarf2-dups" } +// { dg-options "-gdwarf -feliminate-dwarf2-dups" } namespace N { @@ -20,3 +20,5 @@ namespace N } N::Derived thing; + +/* { dg-bogus "-feliminate-dwarf2-dups is broken for C\\+\\+, ignoring" "broken -feliminate-dwarf2-dups" { xfail *-*-* } 1 } */ diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-2.C b/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-2.C new file mode 100644 index 0000000..23175c6 --- /dev/null +++ b/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2-2.C @@ -0,0 +1,19 @@ +// PR debug/27057 +// { dg-do compile } +// { dg-options "-gdwarf -feliminate-dwarf2-dups" } + +namespace N +{ +} + +struct A +{ + void foo (); +}; + +void A::foo () +{ + using namespace N; +} + +/* { dg-bogus "-feliminate-dwarf2-dups is broken for C\\+\\+, ignoring" "broken -feliminate-dwarf2-dups" { xfail *-*-* } 1 } */ diff --git a/gcc/testsuite/g++.dg/debug/pr46123.C b/gcc/testsuite/g++.dg/debug/dwarf2/pr46123-2.C index 9e115cd..b262034 100644 --- a/gcc/testsuite/g++.dg/debug/pr46123.C +++ b/gcc/testsuite/g++.dg/debug/dwarf2/pr46123-2.C @@ -45,3 +45,5 @@ int main () return 1; return 0; } + +/* { dg-bogus "-feliminate-dwarf2-dups is broken for C\\+\\+, ignoring" "broken -feliminate-dwarf2-dups" { xfail *-*-* } 1 } */ diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/typedef5.C b/gcc/testsuite/g++.dg/debug/dwarf2/typedef5.C index d9d058c..b742c1d 100644 --- a/gcc/testsuite/g++.dg/debug/dwarf2/typedef5.C +++ b/gcc/testsuite/g++.dg/debug/dwarf2/typedef5.C @@ -8,3 +8,5 @@ typedef struct } A; A a; + +/* { dg-bogus "-feliminate-dwarf2-dups is broken for C\\+\\+, ignoring" "broken -feliminate-dwarf2-dups" { xfail *-*-* } 1 } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2-3.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-3.c index f0c129c..e364670 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2-3.c +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-3.c @@ -1,7 +1,7 @@ /* Test -feliminate-dwarf2-dups */ /* Contributed by Devang Patel <dpatel@apple.com> */ /* { dg-do compile } */ -/* { dg-options "-feliminate-dwarf2-dups" } */ +/* { dg-options "-gdwarf -feliminate-dwarf2-dups" } */ #include "dwarf2-3.h" diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2-3.h b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-3.h index 26ad0ba..26ad0ba 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2-3.h +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-3.h |