• Austin Clements's avatar
    [dev.cc] liblink: don't patch jumps to jumps to symbols · e04c8b06
    Austin Clements authored
    When liblink sees something like
    
           JMP x
           ...
        x: JMP y
    
    it rewrites the first jump to jump directly to y.  This is
    fine if y is a resolved label.  However, it *also* does this
    if y is a function symbol, but fails to carry over the
    relocation that would later patch in that symbol's value.  As
    a result, the original jump becomes either a self-jump (if
    relative) or a jump to PC 0 (if absolute).
    
    Fix this by disabling this optimization if the jump being
    patched in is a jump to a symbol.
    
    LGTM=minux
    R=rsc, minux
    CC=golang-codereviews
    https://golang.org/cl/185890044
    e04c8b06
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
include Loading commit data...
lib Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.hgignore Loading commit data...
.hgtags Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README Loading commit data...
dev.cc Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...