From eba762930745e43af448961a38b0c607633820be Mon Sep 17 00:00:00 2001 From: Wei Mi Date: Mon, 19 May 2014 05:25:45 +0000 Subject: [PATCH] re PR target/58066 (__tls_get_addr is called with misaligned stack on x86-64) 2014-05-18 Wei Mi PR target/58066 * gcc.target/i386/pr58066.c: Replace pattern matching of .cfi directive with rtl insns. Add effective-target of fpic and tls_native. From-SVN: r210601 --- gcc/testsuite/ChangeLog | 7 +++++++ gcc/testsuite/gcc.target/i386/pr58066.c | 8 ++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7e8859699d2..753fdcf71b1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2014-05-18 Wei Mi + + PR target/58066 + * gcc.target/i386/pr58066.c: Replace pattern matching of .cfi + directive with rtl insns. Add effective-target of fpic and + tls_native. + 2014-05-17 Xinliang David Li * g++.dg/ipa/devirt-33.C: New testcase. diff --git a/gcc/testsuite/gcc.target/i386/pr58066.c b/gcc/testsuite/gcc.target/i386/pr58066.c index 142e21dbaaa..c8feb4ee9e2 100644 --- a/gcc/testsuite/gcc.target/i386/pr58066.c +++ b/gcc/testsuite/gcc.target/i386/pr58066.c @@ -1,5 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-fPIC -O2" } */ +/* { dg-require-effective-target tls_native } */ +/* { dg-require-effective-target fpic } */ +/* { dg-options "-fPIC -fomit-frame-pointer -O2 -fdump-rtl-final" } */ /* Check whether the stack frame starting addresses of tls expanded calls in foo and goo are 16bytes aligned. */ @@ -15,4 +17,6 @@ void* goo() return &ccc2; } -/* { dg-final { scan-assembler-times ".cfi_def_cfa_offset 16" 2 } } */ +/* { dg-final { scan-rtl-dump "Function foo.*set\[^\r\n\]*sp\\)\[\r\n\]\[^\r\n\]*plus\[^\r\n\]*sp\\)\[\r\n\]\[^\r\n\]*const_int -8.*UNSPEC_TLS.*Function goo" "final" } } */ +/* { dg-final { scan-rtl-dump "Function goo.*set\[^\r\n\]*sp\\)\[\r\n\]\[^\r\n\]*plus\[^\r\n\]*sp\\)\[\r\n\]\[^\r\n\]*const_int -8.*UNSPEC_TLS" "final" } } */ +/* { dg-final { cleanup-rtl-dump "final" } } */