From 7e11c1cb30df562340a1b20e320bee56c93ee74b Mon Sep 17 00:00:00 2001
From: hp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 23 Jan 2006 23:44:16 +0000
Subject: [PATCH] 	PR testsuite/25891 	* lib/target-supports.exp
 (check_effective_target_fopenmp): New proc. 	* gcc.dg/gomp/gomp.exp: Return
 without testing anything if 	check_effective_target_fopenmp returns 0.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110148 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/testsuite/ChangeLog               |  7 ++++++
 gcc/testsuite/gcc.dg/gomp/gomp.exp    |  4 +++
 gcc/testsuite/lib/target-supports.exp | 35 +++++++++++++++++++++++++++
 3 files changed, 46 insertions(+)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 954772f6c896..aa0ed47e6352 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2006-01-24  Hans-Peter Nilsson  <hp@axis.com>
+
+	PR testsuite/25891
+	* lib/target-supports.exp (check_effective_target_fopenmp): New proc.
+	* gcc.dg/gomp/gomp.exp: Return without testing anything if
+	check_effective_target_fopenmp returns 0.
+
 2006-01-23  Eric Botcazou  <ebotcazou@adacore.com>
 
 	PR ada/20548
diff --git a/gcc/testsuite/gcc.dg/gomp/gomp.exp b/gcc/testsuite/gcc.dg/gomp/gomp.exp
index cb1b33846896..7ce426deb79c 100644
--- a/gcc/testsuite/gcc.dg/gomp/gomp.exp
+++ b/gcc/testsuite/gcc.dg/gomp/gomp.exp
@@ -3,6 +3,10 @@
 # Load support procs.
 load_lib gcc-dg.exp
 
+if ![check_effective_target_fopenmp] {
+  return
+}
+
 # Initialize `dg'.
 dg-init
 
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 05a180eb9ccc..851218fb0184 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -468,6 +468,41 @@ proc check_effective_target_tls_runtime {} {
     return $et_tls_runtime_saved
 }
 
+# Return 1 if compilation with -fopenmp is error-free for trivial
+# code, 0 otherwise.
+
+proc check_effective_target_fopenmp {} {
+    global et_fopenmp_saved
+    global et_fopenmp_target_name
+
+    if { ![info exists et_fopenmp_target_name] } {
+	set et_fopenmp_target_name ""
+    }
+
+    # If the target has changed since we set the cached value, clear it.
+    set current_target [current_target_name]
+    if { $current_target != $et_fopenmp_target_name } {
+	verbose "check_effective_target_fopenmp: `$et_fopenmp_target_name'" 2
+	set et_fopenmp_target_name $current_target
+	if [info exists et_fopenmp_saved] {
+	    verbose "check_effective_target_fopenmp: removing cached result" 2
+	    unset et_fopenmp_saved
+	}
+    }
+
+    if [info exists et_fopenmp_saved] {
+	verbose "check_effective_target_fopenmp: using cached result" 2
+    } else {
+	verbose "check_effective_target_fopenmp: compiling source" 2
+
+	set et_fopenmp_saved [string match "" [get_compiler_messages fopenmp object {
+	    void foo (void) { }
+	} "-fopenmp"]]
+    }
+    verbose "check_effective_target_fopenmp: returning $et_fopenmp_saved" 2
+    return $et_fopenmp_saved
+}
+
 # Return 1 if -fpic and -fPIC are supported, as in no warnings or errors
 # emitted, 0 otherwise.  Whether a shared library can actually be built is
 # out of scope for this test.
-- 
GitLab