public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug debug/47946] New: Dwarf uses 64-bits to refer to a structure offset unnecessarily
@ 2011-03-01 15:31 hariharans at picochip dot com
2011-03-01 15:31 ` [Bug debug/47946] " hariharans at picochip dot com
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: hariharans at picochip dot com @ 2011-03-01 15:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47946
Summary: Dwarf uses 64-bits to refer to a structure offset
unnecessarily
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: debug
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: hariharans@picochip.com
Created attachment 23503
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23503
The source code
Hello,
In the attached testcase, our dwarf reader reports the structure as
Abbrevation 2: DW_TAG_structure_type [has children]
DW_AT_name DW_FORM_string
DW_AT_byte_size DW_FORM_data1
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_sibling DW_FORM_ref4
Abbrevation 3: DW_TAG_member
DW_AT_name DW_FORM_string
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_type DW_FORM_ref4
DW_AT_byte_size DW_FORM_data1
DW_AT_bit_size DW_FORM_data1
DW_AT_bit_offset DW_FORM_data1
DW_AT_data_member_location DW_FORM_block1
Abbrevation 4: DW_TAG_member
DW_AT_name DW_FORM_string
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_type DW_FORM_ref4
DW_AT_byte_size DW_FORM_data1
DW_AT_bit_size DW_FORM_data1
DW_AT_bit_offset DW_FORM_data8
DW_AT_data_member_location DW_FORM_block1
Note that the first element (c1) takes a DW_FORM_data1 to represent the offset,
whereas the second (i) uses DW_FORM_data8. I am fairly certain it doesn't need
64-bits to represent the offset, so something is wrong here.
I tested this with picochip port in the mainline GCC (as of 03-feb-2011).
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug debug/47946] Dwarf uses 64-bits to refer to a structure offset unnecessarily
2011-03-01 15:31 [Bug debug/47946] New: Dwarf uses 64-bits to refer to a structure offset unnecessarily hariharans at picochip dot com
@ 2011-03-01 15:31 ` hariharans at picochip dot com
2011-03-01 17:07 ` matz at gcc dot gnu.org
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: hariharans at picochip dot com @ 2011-03-01 15:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47946
--- Comment #1 from hariharans at picochip dot com 2011-03-01 15:31:47 UTC ---
Created attachment 23504
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23504
The assembly code
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug debug/47946] Dwarf uses 64-bits to refer to a structure offset unnecessarily
2011-03-01 15:31 [Bug debug/47946] New: Dwarf uses 64-bits to refer to a structure offset unnecessarily hariharans at picochip dot com
2011-03-01 15:31 ` [Bug debug/47946] " hariharans at picochip dot com
@ 2011-03-01 17:07 ` matz at gcc dot gnu.org
2011-03-01 18:39 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: matz at gcc dot gnu.org @ 2011-03-01 17:07 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47946
Michael Matz <matz at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |matz at gcc dot gnu.org
--- Comment #2 from Michael Matz <matz at gcc dot gnu.org> 2011-03-01 17:06:42 UTC ---
Due to the definition of dwarf2/3 these offsets are negative on little-endian
machines. This was fixed in dwarf4, see
http://dwarfstd.org/ShowIssue.php?issue=081130.1&type=closed3
GCC doesn't yet support this part of dwarf4. But even for dwarf2 we could
emit this signed number as sleb128, not as unsigned number (that is what
causes us to use FORM_data8).
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug debug/47946] Dwarf uses 64-bits to refer to a structure offset unnecessarily
2011-03-01 15:31 [Bug debug/47946] New: Dwarf uses 64-bits to refer to a structure offset unnecessarily hariharans at picochip dot com
2011-03-01 15:31 ` [Bug debug/47946] " hariharans at picochip dot com
2011-03-01 17:07 ` matz at gcc dot gnu.org
@ 2011-03-01 18:39 ` jakub at gcc dot gnu.org
2011-03-02 10:11 ` hariharans at picochip dot com
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-03-01 18:39 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47946
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-01 18:39:17 UTC ---
Created attachment 23506
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23506
gcc46-pr47946.patch
Untested fix.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug debug/47946] Dwarf uses 64-bits to refer to a structure offset unnecessarily
2011-03-01 15:31 [Bug debug/47946] New: Dwarf uses 64-bits to refer to a structure offset unnecessarily hariharans at picochip dot com
` (2 preceding siblings ...)
2011-03-01 18:39 ` jakub at gcc dot gnu.org
@ 2011-03-02 10:11 ` hariharans at picochip dot com
2011-03-14 20:07 ` jakub at gcc dot gnu.org
2011-03-14 20:13 ` jakub at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: hariharans at picochip dot com @ 2011-03-02 10:11 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47946
--- Comment #4 from hariharans at picochip dot com 2011-03-02 10:11:19 UTC ---
Hello Jakub,
I tested the patch and it fixes the problem. Thanks for looking into this.
Cheers
Hari
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug debug/47946] Dwarf uses 64-bits to refer to a structure offset unnecessarily
2011-03-01 15:31 [Bug debug/47946] New: Dwarf uses 64-bits to refer to a structure offset unnecessarily hariharans at picochip dot com
` (3 preceding siblings ...)
2011-03-02 10:11 ` hariharans at picochip dot com
@ 2011-03-14 20:07 ` jakub at gcc dot gnu.org
2011-03-14 20:13 ` jakub at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-03-14 20:07 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47946
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-14 20:07:29 UTC ---
Author: jakub
Date: Mon Mar 14 20:07:22 2011
New Revision: 170956
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=170956
Log:
PR debug/47946
* dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
emit it as add_AT_int instead of add_AT_unsigned.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug debug/47946] Dwarf uses 64-bits to refer to a structure offset unnecessarily
2011-03-01 15:31 [Bug debug/47946] New: Dwarf uses 64-bits to refer to a structure offset unnecessarily hariharans at picochip dot com
` (4 preceding siblings ...)
2011-03-14 20:07 ` jakub at gcc dot gnu.org
@ 2011-03-14 20:13 ` jakub at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-03-14 20:13 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47946
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
CC| |jakub at gcc dot gnu.org
Resolution| |FIXED
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-14 20:13:29 UTC ---
Fixed for 4.7+.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-03-14 20:13 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-01 15:31 [Bug debug/47946] New: Dwarf uses 64-bits to refer to a structure offset unnecessarily hariharans at picochip dot com
2011-03-01 15:31 ` [Bug debug/47946] " hariharans at picochip dot com
2011-03-01 17:07 ` matz at gcc dot gnu.org
2011-03-01 18:39 ` jakub at gcc dot gnu.org
2011-03-02 10:11 ` hariharans at picochip dot com
2011-03-14 20:07 ` jakub at gcc dot gnu.org
2011-03-14 20:13 ` jakub at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).