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).