aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2014-10-11 11:33:37 +0000
committerChristophe Lyon <clyon@gcc.gnu.org>2014-10-11 13:33:37 +0200
commit1665db4dbd2b04ed42f094b399db251bb2f8b839 (patch)
tree9394ce08af649aa73724e4bc6e984408bfc14bb8
parent51115027530f64fe29b5c755a161581658a32c38 (diff)
downloadgcc-1665db4dbd2b04ed42f094b399db251bb2f8b839.zip
gcc-1665db4dbd2b04ed42f094b399db251bb2f8b839.tar.gz
gcc-1665db4dbd2b04ed42f094b399db251bb2f8b839.tar.bz2
target-supports.exp (check_effective_target_shared): New function.
2014-10-11 Christophe Lyon <christophe.lyon@linaro.org> gcc/testsuite/ * lib/target-supports.exp (check_effective_target_shared): New function. * g++.dg/ipa/devirt-28a.C: Check if -shared is supported. From-SVN: r216117
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-28a.C2
-rw-r--r--gcc/testsuite/lib/target-supports.exp13
3 files changed, 20 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e77c6a1..b038c82 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2014-10-11 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * lib/target-supports.exp (check_effective_target_shared): New
+ function.
+ * g++.dg/ipa/devirt-28a.C: Check if -shared is supported.
+
2014-10-10 Jakub Jelinek <jakub@redhat.com>
PR c/63495
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-28a.C b/gcc/testsuite/g++.dg/ipa/devirt-28a.C
index bdd1682..65d5fcd 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-28a.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-28a.C
@@ -1,6 +1,6 @@
// PR c++/58678
// { dg-options "-O3 -flto -shared -fPIC -Wl,--no-undefined" }
-// { dg-do link { target { gld && fpic } } }
+// { dg-do link { target { { gld && fpic } && shared } } }
struct A {
virtual ~A();
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 2144683..4398345 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -840,6 +840,19 @@ proc check_effective_target_fpic { } {
return 0
}
+# Return 1 if -shared is supported, as in no warnings or errors
+# emitted, 0 otherwise.
+
+proc check_effective_target_shared { } {
+ # Note that M68K has a multilib that supports -fpic but not
+ # -fPIC, so we need to check both. We test with a program that
+ # requires GOT references.
+ return [check_no_compiler_messages shared executable {
+ extern int foo (void); extern int bar;
+ int baz (void) { return foo () + bar; }
+ } "-shared -fpic"]
+}
+
# Return 1 if -pie, -fpie and -fPIE are supported, 0 otherwise.
proc check_effective_target_pie { } {