diff mbox

[testsuite,ada] Compile gnat.dg effective-target checks with gcc_target_compile

Message ID yddpqttrwk0.fsf@manam.CeBiTec.Uni-Bielefeld.DE
State New
Headers show

Commit Message

Rainer Orth Nov. 25, 2010, 8:13 p.m. UTC
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.

-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Comments

Eric Botcazou Nov. 26, 2010, 9:23 a.m. UTC | #1
> 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.

Indeed, because gnatmake doesn't know how to handle C files.

> 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.

OK, thanks.
diff mbox

Patch

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;
 
--