This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[testsuite, ada] Compile gnat.dg effective-target checks with gcc_target_compile
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Eric Botcazou <ebotcazou at adacore dot com>
- Date: Thu, 25 Nov 2010 21:13:35 +0100
- Subject: [testsuite, ada] Compile gnat.dg effective-target checks with gcc_target_compile
I've finally gotten around to properly test my patch to make
dg-require-effective-target work with the gnat.dg testsuite. Unlike
any other language, the gnat_target_compile function only works with Ada
code, not invoking e.g. the C compiler for other input.
I'm fixing this by explicitly calling gcc_target_compile in
gnat_target_compile for *.c files.
Removing dg-require-effective-target sse from loop_optimization7.adb was
the right thing to do anyway, since as a compile test it's immaterial
whether the assembler can handle SSE.
On the other hand, sse_nolib.adb, as a run test, requires sse_runtime,
as this patch adds.
Tested with the appropriate runtest invocations on i386-pc-solaris2.8,
where loop_optimization7.adb continues to pass, while sse_nolib.adb
becomes unsupported since O/S support is missing. On
i386-pc-solaris2.11, both tests pass.
Ok for mainline and the 4.5 branch?
Rainer
2010-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* lib/gnat.exp: Load gcc.exp.
(gnat_target_compile): Use gcc_target_compile for *.c sources.
* gnat.dg/sse_nolib.adb: Use dg-require-effective-target sse_runtime.
diff -r 736a64c64f6c gcc/testsuite/lib/gnat.exp
--- a/gcc/testsuite/lib/gnat.exp Sun Nov 14 23:15:14 2010 +0100
+++ b/gcc/testsuite/lib/gnat.exp Sat Nov 20 11:17:15 2010 +0100
@@ -27,6 +27,7 @@
load_lib libgloss.exp
load_lib prune.exp
load_lib gcc-defs.exp
+load_lib gcc.exp
load_lib timeout.exp
#
@@ -132,6 +133,11 @@
global gnat_libgcc_s_path
global gnat_target_current
+ # dg-require-effective-target tests must be compiled as C.
+ if [ string match "*.c" $source ] then {
+ return [gcc_target_compile $source $dest $type $options]
+ }
+
# If we detect a change of target, we need to recompute both
# GNAT_UNDER_TEST and the appropriate RTS.
if { $gnat_target_current!="[current_target_name]" } {
diff -r 5fadddc44ec5 gcc/testsuite/gnat.dg/sse_nolib.adb
--- a/gcc/testsuite/gnat.dg/sse_nolib.adb Tue Nov 23 12:22:55 2010 +0100
+++ b/gcc/testsuite/gnat.dg/sse_nolib.adb Thu Nov 25 21:07:38 2010 +0100
@@ -1,6 +1,6 @@
-- { dg-do run { target i?86-*-* x86_64-*-* } }
-- { dg-options "-O1 -msse" }
+-- { dg-require-effective-target sse_runtime }
with Ada.Unchecked_Conversion;
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University