• Russ Cox's avatar
    cmd/gc: correct liveness for wrappers containing tail jumps · 02ae91f3
    Russ Cox authored
    A normal RET is treated as using the return values,
    but a tail jump RET does not - it is jumping to the
    function that is going to fill in the return values.
    If a tail jump RET is recorded as using the return values,
    since nothing initializes them they will be marked as
    live on entry to the function, which is clearly wrong.
    
    Found and tested by the new code in plive.c that looks
    for variables that are incorrectly live on entry.
    That code is disabled for now because there are other
    cases remaining to be fixed. But once it is enabled,
    test/live1.go becomes a real test of this CL.
    
    TBR=iant
    CC=golang-codereviews
    https://golang.org/cl/63570045
    02ae91f3
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...
favicon.ico Loading commit data...
robots.txt Loading commit data...