Hi,
This patch adds bind_pic_locally to a certain tests that depend on the
availability of functions, declared in them. Those tests fail on
Android (or on any other pic target);
As for gcc/testsuite/g++.dg/fstack-protector-strong.[cC] - this is a
related problem. I've added target nonpic, cause __stack_chk_fail
(that is scanned in them) is not emitted in position independent case.
Patch is regtested on x86_64-unknown-linux-gnu. Is it OK?
2014-11-12 Alexander Ivchenko alexander.ivche...@intel.com
* c-c++-common/tm/safe-3.c: Add bind_pic_locally.
* g++.dg/ipa/devirt-15.C: Ditto.
* g++.dg/ipa/devirt-7.C: Ditto.
* g++.dg/ipa/pr60600.C: Ditto.
* g++.dg/opt/vt2.C: Ditto.
* g++.dg/opt/vt4.C: Ditto.
* g++.dg/pr48484.C: Ditto.
* g++.dg/tm/pr47746.C: Ditto.
* g++.dg/tree-ssa/pr57380.C: Ditto.
* gcc.dg/ipa/inline-4.c: Ditto.
* gcc.dg/ipa/inlinehint-1.c: Ditto.
* gcc.dg/ipa/inlinehint-2.c: Ditto.
* gcc.dg/ipa/inlinehint-3.c: Ditto.
* gcc.dg/pr47276.c: Ditto.
* gcc.dg/pure-2.c: Ditto.
* gcc.dg/tm/nested-2.c: Ditto.
* gcc.dg/tree-ssa/alias-29.c: Ditto.
* gcc.target/i386/3dnow-1.c: Ditto.
* gcc.target/i386/3dnow-2.c: Ditto.
* gcc.target/i386/3dnowA-1.c: Ditto.
* gcc.target/i386/3dnowA-2.c: Ditto.
* gcc.target/i386/avx-1.c: Ditto.
* gcc.target/i386/avx-2.c: Ditto.
* gcc.target/i386/memcpy-1.c: Ditto.
* gcc.target/i386/mmx-1.c: Ditto.
* gcc.target/i386/mmx-2.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-22a.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* gcc.target/i386/sse-24.c: Ditto.
* gcc.target/i386/vect-double-1.c: Ditto.
* g++.dg/fstack-protector-strong.C: Add target nonpic.
* gcc.dg/fstack-protector-strong.c: Ditto.
diff --git a/gcc/testsuite/c-c++-common/tm/safe-3.c
b/gcc/testsuite/c-c++-common/tm/safe-3.c
index 8a883db..becbd2f 100644
--- a/gcc/testsuite/c-c++-common/tm/safe-3.c
+++ b/gcc/testsuite/c-c++-common/tm/safe-3.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options -fgnu-tm } */
+/* { dg-add-options bind_pic_locally } */
void f_extern (void);
void f_first (void);
diff --git a/gcc/testsuite/g++.dg/fstack-protector-strong.C
b/gcc/testsuite/g++.dg/fstack-protector-strong.C
index 5a820ed..ae6d2fd 100644
--- a/gcc/testsuite/g++.dg/fstack-protector-strong.C
+++ b/gcc/testsuite/g++.dg/fstack-protector-strong.C
@@ -3,6 +3,11 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
/* { dg-options -O2 -fstack-protector-strong } */
+/* This test checks the presence of __stack_chk_fail function in assembler.
+ * Compiler generates _stack_chk_fail_local (wrapper) calls instead for PIC.
+ */
+/* { dg-require-effective-target nonpic } */
+
class A
{
public:
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-15.C
b/gcc/testsuite/g++.dg/ipa/devirt-15.C
index 9245646..fd83894 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-15.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-15.C
@@ -2,6 +2,8 @@
A is noreturn. */
/* { dg-do compile } */
/* { dg-options -O2 -fdump-ipa-devirt-details -fdump-tree-optimized } */
+/* { dg-add-options bind_pic_locally } */
+
class A {
public:
virtual int foo(void)
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-7.C
b/gcc/testsuite/g++.dg/ipa/devirt-7.C
index 1c59122..30df64a 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-7.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-7.C
@@ -2,6 +2,7 @@
comes from a method that has been early-inlined into a descendant. */
/* { dg-do run } */
/* { dg-options -O3 -fdump-ipa-cp } */
+/* { dg-add-options bind_pic_locally } */
extern C void abort (void);
diff --git a/gcc/testsuite/g++.dg/ipa/pr60600.C
b/gcc/testsuite/g++.dg/ipa/pr60600.C
index 0753931..8f6cd7a 100644
--- a/gcc/testsuite/g++.dg/ipa/pr60600.C
+++ b/gcc/testsuite/g++.dg/ipa/pr60600.C
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options -O3 -fdump-ipa-cp } */
+/* { dg-add-options bind_pic_locally } */
struct data {
data(int);
diff --git a/gcc/testsuite/g++.dg/opt/vt2.C b/gcc/testsuite/g++.dg/opt/vt2.C
index a77db38..780f587 100644
--- a/gcc/testsuite/g++.dg/opt/vt2.C
+++ b/gcc/testsuite/g++.dg/opt/vt2.C
@@ -1,5 +1,6 @@
// PR c++/34949
// { dg-options -O3 }
+// { dg-add-options bind_pic_locally }
// { dg-final { scan-assembler-not mov\[^\n\]*_ZTV { target
i?86-*-* x86_64-*-* } } }
class Foo
diff --git a/gcc/testsuite/g++.dg/opt/vt4.C b/gcc/testsuite/g++.dg/opt/vt4.C
index c8d04cf..98378da 100644
--- a/gcc/testsuite/g++.dg/opt/vt4.C
+++ b/gcc/testsuite/g++.dg/opt/vt4.C
@@ -1,6 +1,7 @@
// PR c++/50243
// { dg-do compile }
// { dg-options -O }
+// { dg-add-options bind_pic_locally }
// { dg-final { scan-assembler-not _ZTV.A } }
void foo ();
diff --git a/gcc/testsuite/g++.dg/pr48484.C b/gcc/testsuite/g++.dg/pr48484.C
index 3f17f39..1380c45