bug-binutils
[Top][All Lists]
Advanced

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

[Bug gas/18561] sh assembler wrongly constant-folds address expressions


From: amodra at gmail dot com
Subject: [Bug gas/18561] sh assembler wrongly constant-folds address expressions containing weak symbols
Date: Sat, 22 Aug 2015 02:11:50 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=18561

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
                 CC|                            |amodra at gmail dot com
         Resolution|---                         |WONTFIX

--- Comment #8 from Alan Modra <amodra at gmail dot com> ---
You'll find that there are expressions where a weak or global symbol should be
resolved by the assembler, which is why S_FORCE_RELOC has a "strict"
paramenter.

In fact, most expressions on most targets involving subtraction of defined
symbols ought to be resolved, because these expressions are calculating some
property of the *local* object/function.  eg. .size expressions, relative
offset to function in debug info.  (Yes I know gcc generally emits local
symbols for such offsets in debug info, but this wasn't always the case.  Does
all handcrafted debug or .eh_frame info use local symbols?)

If either of the patches Nick has attached here are applied I can almost 100%
guarantee you will break things.  That's what I found when making similar
changes a long time ago, using exactly the same reasoning about weak symbols. 
So, given that resolving subtraction expressions is a long-standing assembler
behaviour, I think this is simply a SH gcc bug.

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

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