As noted in http://gcc.gnu.org/ml/gcc-help/2010-09/msg00081.html , -feliminate-dwarf2-dups has been broken for C++ ever since GCC 4.0; the front end now tokenizes the entire input before doing any parsing, so the calls to dwarf2out_{start,end}_source_file are all clustered at the beginning rather than properly wrapping the contents of headers. Testcase from that message: ------ source file bar.c: -------- #include "foo.h" #include "bar.h" struct Foo myfoo; struct Bar mybar; ---------------------------------- ------ header file foo.h: -------- struct Foo { double d_foo; int i_foo; }; ---------------------------------- ------ header file bar.h: -------- struct Bar { double d_bar; int i_bar; char c_bar; }; ----------------------------------
The 4.5 branch is being closed, adjusting target milestone.
GCC 4.6.4 has been released and the branch has been closed.
Assuming fixed in 4.8.0.
Not fixed.
-feliminate-dwarf2-dups has been disabled for C++ (see PR46102). However, as noted by Ian in the thread in #c1, there are better ways of removing duplicates in dwarf4. Consequently, I don't believe this should be in the "serious regression" category. Downgrading.
(In reply to Aldy Hernandez from comment #5) > -feliminate-dwarf2-dups has been disabled for C++ (see PR46102). However, > as noted by Ian in the thread in #c1, there are better ways of removing > duplicates in dwarf4. FWIW I don't know if I agree that .debug_types is "better"; there's currently no way to refer to children of the type, so we end up creating "skeleton" DIEs in the main CU anyway.
GCC 6.1 has been released.
GCC 6 branch is being closed
The GCC 7 branch is being closed, re-targeting to GCC 8.4.
GCC 8.4.0 has been released, adjusting target milestone.
GCC 8 branch is being closed.
GCC 9.4 is being released, retargeting bugs to GCC 9.5.
-feliminate-dwarf2-dups was removed in GCC 8 by r8-2622 so closing as won't fix.