class C { C(); void f() {}; }; C::C() { f(); }; g++ -c -o cu-overlap.o cu-overlap.C -g -O0 readelf --debug-dump=Ranges cu-overlap.o
Contents of the .debug_ranges section: Offset Begin End 00000000 0000000000000000 0000000000000034 00000000 0000000000000000 000000000000000a 00000000 0000000000000000 000000000000001a 00000000 000000000000001a 0000000000000034 00000000 <End of list> Relocation section '.rela.debug_ranges' at offset 0x1560 contains 8 entries: Offset Type Symbol's Value Symbol's Name + Addend 0000000000000000 R_X86_64_64 0000000000000000 .text + 0 0000000000000008 R_X86_64_64 0000000000000000 .text + 34 0000000000000010 R_X86_64_64 0000000000000000 .text._ZN1C1fEv + 0 0000000000000018 R_X86_64_64 0000000000000000 .text._ZN1C1fEv + a 0000000000000020 R_X86_64_64 0000000000000000 .text + 0 0000000000000028 R_X86_64_64 0000000000000000 .text + 1a 0000000000000030 R_X86_64_64 0000000000000000 .text + 1a 0000000000000038 R_X86_64_64 0000000000000000 .text + 34 DWARF3 2.17.3: Address range entries in a range list may not overlap. Contents of the .debug_ranges section: Offset Begin End 1st 00000000 0000000000000000 0000000000000034 - is from .Ltext0 .. .Letext0 2nd 00000000 0000000000000000 000000000000000a - NOT overlapping, COMDAT C::f() 3rd 00000000 0000000000000000 000000000000001a - is from first C::C() instance 4th 00000000 000000000000001a 0000000000000034 - is from second C::C() instance 1st overlaps with 3rd+4th. -- Summary: Overlapping .debug_ranges (C++) Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jan dot kratochvil at redhat dot com GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40713