* [testsuite, ada] Compile gnat.dg effective-target checks with gcc_target_compile
@ 2010-11-25 23:41 Rainer Orth
2010-11-26 12:45 ` Eric Botcazou
0 siblings, 1 reply; 2+ messages in thread
From: Rainer Orth @ 2010-11-25 23:41 UTC (permalink / raw)
To: gcc-patches; +Cc: Eric Botcazou
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
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [testsuite, ada] Compile gnat.dg effective-target checks with gcc_target_compile
2010-11-25 23:41 [testsuite, ada] Compile gnat.dg effective-target checks with gcc_target_compile Rainer Orth
@ 2010-11-26 12:45 ` Eric Botcazou
0 siblings, 0 replies; 2+ messages in thread
From: Eric Botcazou @ 2010-11-26 12:45 UTC (permalink / raw)
To: Rainer Orth; +Cc: gcc-patches
> 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.
--
Eric Botcazou
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-11-26 9:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-25 23:41 [testsuite, ada] Compile gnat.dg effective-target checks with gcc_target_compile Rainer Orth
2010-11-26 12:45 ` Eric Botcazou
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).