http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56563
Bug #: 56563
Summary: no debuginfo for "explicit" operator
Classification: Unclassified
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: debug
AssignedTo: [email protected]
ReportedBy: [email protected]
Consider this:
struct q {
explicit operator int();
};
q::operator int() { return 23; }
compile with -g and examine the debuginfo with readelf.
There is no mention of the "explicit":
<2><37>: Abbrev Number: 3 (DW_TAG_subprogram)
<38> DW_AT_external : 1
<38> DW_AT_name : (indirect string, offset: 0x0): operator int
<3c> DW_AT_decl_file : 1
<3d> DW_AT_decl_line : 2
<3e> DW_AT_linkage_name: (indirect string, offset: 0x12): _ZN1qcviEv
<42> DW_AT_type : <0x51>
<46> DW_AT_declaration : 1
<46> DW_AT_object_pointer: <0x4a>
[...]
<1><5e>: Abbrev Number: 7 (DW_TAG_subprogram)
<5f> DW_AT_specification: <0x37>
<63> DW_AT_decl_line : 5
<64> DW_AT_low_pc : 0x0
<6c> DW_AT_high_pc : 0xf 0x0
<74> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa)
<76> DW_AT_object_pointer: <0x7e>
<7a> DW_AT_GNU_all_call_sites: 1
<7a> DW_AT_sibling : <0x8b>
This prevents gdb from properly implementing this part of
c++ expressions.