https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84574

--- Comment #1 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Thu Mar 15 17:54:40 2018
New Revision: 258569

URL: https://gcc.gnu.org/viewcvs?rev=258569&root=gcc&view=rev
Log:
i386: Don't generate alias for function return thunk

Function return thunks shouldn't be aliased to indirect branch thunks
since indirect branch thunks are placed in COMDAT section and a COMDAT
section with indirect branch may not have function return thunk.  This
patch generates function return thunks directly.

gcc/

        PR target/84574
        * config/i386/i386.c (indirect_thunk_needed): Update comments.
        (indirect_thunk_bnd_needed): Likewise.
        (indirect_thunks_used): Likewise.
        (indirect_thunks_bnd_used): Likewise.
        (indirect_return_needed): New.
        (indirect_return_bnd_needed): Likewise.
        (output_indirect_thunk_function): Add a bool argument for
        function return.
        (output_indirect_thunk_function): Don't generate alias for
        function return thunk.
        (ix86_code_end): Call output_indirect_thunk_function to generate
        function return thunks.
        (ix86_output_function_return): Set indirect_return_bnd_needed
        and indirect_return_needed instead of indirect_thunk_bnd_needed
        and indirect_thunk_needed.

gcc/testsuite/

        PR target/84574
        * gcc.target/i386/ret-thunk-9.c: Expect __x86_return_thunk
        label instead of __x86_indirect_thunk label.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.target/i386/ret-thunk-9.c

Reply via email to