This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/64912] New: no debug info for struct that pass by reference
- From: "chihin.ko at oracle dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 03 Feb 2015 03:59:29 +0000
- Subject: [Bug c++/64912] New: no debug info for struct that pass by reference
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64912
Bug ID: 64912
Summary: no debug info for struct that pass by reference
Product: gcc
Version: 4.8.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: chihin.ko at oracle dot com
For following t.cc:
extern "C" int printf(const char*, ...);
#include <deque>
using namespace std;
deque<int> gl_li(5,100);
int main ()
{
deque<int> tmp_deque(5,200);
gl_li.assign(tmp_deque.cbegin(),tmp_deque.cend());
gl_li.assign(tmp_deque.begin(),tmp_deque.end());
for ( auto el: gl_li )
printf("el = %d\n", el);
return 0;
}
/gcc/4.8.1/intel-Linux/bin/g++ -m64 -std=c++11 t.cc -Xlinker
-R/gcc/4.8.1/intel-Linux/lib64
There is no debug info to indicate struct "_Deque_iterator<int, int&, int*>"
is passed type reference:
< 2><0x000009be> DW_TAG_structure_type
DW_AT_name "_Deque_iterator<int, int&,
int*>"
DW_AT_byte_size 0x00000020
DW_AT_decl_file 0x00000001
/net/dv104/export/tools/gcc/4.8.1/intel-Linux/include/c++/4.8.1/bits/stl_deque.h
DW_AT_decl_line 0x0000006a
DW_AT_sibling <0x00000c55>
< 3><0x000009ca> DW_TAG_member
DW_AT_name "_M_cur"
===============================================================================
Oracle C++ compiler would generate something like this:
< 2><0x00001bee> DW_TAG_structure_type
DW_AT_name "_Deque_iterator<int, int&,
int*>"
DW_AT_SUN_link_name
"_ZSt15_Deque_iteratorIiRiPiE"
DW_AT_decl_file 0x00000002
/ws/cia/builds/dodona/latest/inte
l-S2/lib/compilers/CC-gcc/include/c++/4.8.2/bits/stl_deque.h
DW_AT_decl_line 0x00000069
DW_AT_VMS_rtnbeg_pd_address <0x00001b9f>
DW_AT_byte_size 0x00000020
DW_AT_SUN_pass_with_const yes(1) <=== passed by
reference
DW_AT_SUN_return_with_const yes(1) <=== returned by
reference