bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/4029] relax_segment can't stabilize .gcc_except_table


From: amodra at bigpond dot net dot au
Subject: [Bug gas/4029] relax_segment can't stabilize .gcc_except_table
Date: 10 Mar 2007 10:58:01 -0000

------- Additional Comments From amodra at bigpond dot net dot au  2007-03-10 
10:58 -------
Reduced testcase.

 .data
 .align 4
 .byte 0, 0
 .uleb128 end - start
start:
 .space 128*128 - 1 /* or -2 or -3 */
 .align 4
end:

I don't believe this is a gas bug.  Instead, I believe gcc is asking the
impossible of gas.  The original testcase or the reduced one above has no
correct solution.  ie. this problem is caused by a design fault in the layout of
.gcc_except_table data.

Consider:
We know the uleb128 is either two or three bytes long.  If end-start is
128*128-1 or somewhat less, then it will be two bytes.  If 128*128 or a little
larger, then it will be three bytes.

But, if the uleb128 is two bytes in size, then end-start is 128*128
If the uleb128 is three bytes, then end-start is 128*128-1
This results in a contradiction.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID


http://sourceware.org/bugzilla/show_bug.cgi?id=4029

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]