aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2018-01-15 18:16:01 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2018-01-15 10:16:01 -0800
commit650d669bb4a74cd2cc17d80b110d0f666d3f5bee (patch)
tree911719cc01e21579bbc0f70ae16797e1c2199118 /gcc/config
parentb0e63d94835956810fa056dbb06ea3741a6862ed (diff)
downloadgcc-650d669bb4a74cd2cc17d80b110d0f666d3f5bee.zip
gcc-650d669bb4a74cd2cc17d80b110d0f666d3f5bee.tar.gz
gcc-650d669bb4a74cd2cc17d80b110d0f666d3f5bee.tar.bz2
i386: Don't use ASM_OUTPUT_DEF for TARGET_MACHO
ASM_OUTPUT_DEF isn't defined for TARGET_MACHO. Use ASM_OUTPUT_LABEL to generate the __x86_return_thunk label, instead of the set directive. Update testcase to remove the __x86_return_thunk label check. Since -fno-pic is ignored on Darwin, update testcases to scan or "push" only on Linux. gcc/ PR target/83839 * config/i386/i386.c (output_indirect_thunk_function): Use ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO for __x86_return_thunk. gcc/testsuite/ PR target/83839 * gcc.target/i386/indirect-thunk-1.c: Scan for "push" only on Linux. * gcc.target/i386/indirect-thunk-2.c: Likewise. * gcc.target/i386/indirect-thunk-3.c: Likewise. * gcc.target/i386/indirect-thunk-4.c: Likewise. * gcc.target/i386/indirect-thunk-7.c: Likewise. * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. * gcc.target/i386/indirect-thunk-register-1.c: Likewise. * gcc.target/i386/indirect-thunk-register-3.c: Likewise. * gcc.target/i386/indirect-thunk-register-4.c: Likewise. * gcc.target/i386/ret-thunk-10.c: Likewise. * gcc.target/i386/ret-thunk-11.c: Likewise. * gcc.target/i386/ret-thunk-12.c: Likewise. * gcc.target/i386/ret-thunk-13.c: Likewise. * gcc.target/i386/ret-thunk-14.c: Likewise. * gcc.target/i386/ret-thunk-15.c: Likewise. * gcc.target/i386/ret-thunk-9.c: Don't check the __x86_return_thunk label. Scan for "push" only for Linux. From-SVN: r256704
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/i386.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 9ac4ad6..ea9c462 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -10958,7 +10958,6 @@ output_indirect_thunk_function (bool need_bnd_p, int regno)
char alias[32];
indirect_thunk_name (alias, regno, need_bnd_p, true);
- ASM_OUTPUT_DEF (asm_out_file, alias, name);
#if TARGET_MACHO
if (TARGET_MACHO)
{
@@ -10967,8 +10966,10 @@ output_indirect_thunk_function (bool need_bnd_p, int regno)
fputs ("\n\t.private_extern\t", asm_out_file);
assemble_name (asm_out_file, alias);
putc ('\n', asm_out_file);
+ ASM_OUTPUT_LABEL (asm_out_file, alias);
}
#else
+ ASM_OUTPUT_DEF (asm_out_file, alias, name);
if (USE_HIDDEN_LINKONCE)
{
fputs ("\t.globl\t", asm_out_file);