target-supports.exp (check_effective_target_shared): New function.
authorChristophe Lyon <christophe.lyon@linaro.org>
Sat, 11 Oct 2014 11:33:37 +0000 (11:33 +0000)
committerChristophe Lyon <clyon@gcc.gnu.org>
Sat, 11 Oct 2014 11:33:37 +0000 (13:33 +0200)
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

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/devirt-28a.C
gcc/testsuite/lib/target-supports.exp

index e77c6a1ff329673f82be769a0dfcf88414f7987f..b038c828d38fc55f36374eb196bfdd41f4a19d6d 100644 (file)
@@ -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
index bdd1682022ab8776a0f0f927fe83d183b4c1e718..65d5fcdf3e2bd5e99dad4406ed561f24e8942029 100644 (file)
@@ -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();
index 2144683f2309cda17317b2b9544a7433c881b3c5..4398345eb8a55f2344798ab8a1f809f162477d0b 100644 (file)
@@ -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 { } {