This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [testsuite, ada] Convert ACATS to DejaGnu (PR testsuite/37703)


Arnaud Charlet <charlet@adacore.com> writes:

>> Virtually all of them (hundreds) was my take.  I think one can look to the
>> g++.dg testsuite, in dg.exp:
>> 
>> # If a testcase doesn't have special options, use these.
>> global DEFAULT_CXXFLAGS
>> if ![info exists DEFAULT_CXXFLAGS] then {
>>     set DEFAULT_CXXFLAGS " -ansi -pedantic-errors -Wno-long-long"
>> }
>> 
>> 
>> here we set the default flags to use for testcases in this part of the
>> directory hierarchy.  If the Ada tests can be partitioned into groups of
>> similar test cases with respect to the base flags, then one can put in that
>> driver for that part, the base flags to use.  The benefit, no testcase needs an
>> options line added, unless it truly is special.
>
> Exactly. All tests should use the same base '-O2' flag, so it's really
> wrong to put -O2 in the test itself and this should be done as you mentioned
> above.

This is what I do already.  Only for the testcases that need special
flags (like -gnat95), I have { dg-options "-O2 -gnat95" } as a comment
in the affected testcase the retain the -O2 default.  Unfortunately,
dg-options doesn't add to the default, but replaces it wholesale.  So
without having the -O2 in dg-options, the -O2 default would be lost,
which I didn't think a good idea.  I even seem to rememember that at
least one -fstack-check testcase works at -O2, but fails without.

Anyway, and just for your reference and not yet incorporating Mike's
comments and suggestions, here's the current patch that fixes all the
flaws I mentioned in my original submission.

I know of one serious issue currently: the old framework is run with
ulimit -s 16384, and without that two of the -fstack-check tests fail.
I couldn't find a hook inside standard_load to insert that from inside a
testcase (or even the framework).  This seems like a general DejaGnu RFE
to me, but for the time being, my plan is to have a pre-check hook in
gcc/Makefile.in (check-%, check-parallel-%): something like
$*_pre_check_command which gcc/ada/gcc-interface/Make-lang.in could use
by setting gnat_pre_check_command to ulimit -s 16384.

So, without much further ado, here's the patch.  Feel free to plug it
apart :-)

	Rainer


2011-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	contrib:
	PR testsuite/37703
	* dg-extract-results.sh: Remove ACATS support.

	gcc/ada:
	PR testsuite/37703
	* gcc-interface/Make-lang.in (check-ada): Remove check-acats.
	(check-ada-subtargets): Remove check-acats-subtargets.
	(ACATSDIR): Remove.
	(check_acats_targets): Remove.
	(check-acats): Remove.
	(check-acats-subtargets): Remove.
	($(check_acats_targets)): Remove.
	(.PHONY): Remove.

	gcc/testsuite:
	PR testsuite/37703
	* lib/gnat.exp: Load copy-file.exp.
	(gnat-acats-init): New proc.
	(gnat-acats-finish): New proc.
	(gnat_set_ada_env_vars): New proc.
	(gnat_target_compile): Use it.
	Remove -f from compiler.
	Pass additional_flags for ACATS.
	(find_gnatchop): New proc.
	* lib/gnat-dg.exp (acats-get-options): New proc.
	(gnat-dg-acats-runtest): New proc.
	(gnat_load): Handle ACATS status reporting.
	* gnat.acats/acats.exp: New file.

	* gnat.acats/support/impdef.a (Linker_Options): Remove ACATS4GNATDIR/.
	(Test_Path_Root): Use tests/.

	* gnat.acats/a/ac3106a.ada: Add dg-options "-O2 -gnat95".
	* gnat.acats/c3/c34005p.ada: Likewise.
	* gnat.acats/c3/c34005r.ada: Likewise.
	* gnat.acats/c3/c34005s.ada: Likewise.
	* gnat.acats/c3/c34005u.ada: Likewise.
	* gnat.acats/c3/c34005v.ada: Likewise.
	* gnat.acats/c3/c34006g.ada: Likewise.
	* gnat.acats/c3/c34006j.ada: Likewise.
	* gnat.acats/c3/c34006l.ada: Likewise.
	* gnat.acats/c3/c34008a.ada: Likewise.
	* gnat.acats/c3/c3a0014.a: Likewise.
	* gnat.acats/c4/c41103b.ada: Likewise.
	* gnat.acats/c4/c41203b.ada: Likewise.
	* gnat.acats/c4/c41306a.ada: Likewise.
	* gnat.acats/c4/c460a01.a: Likewise.
	* gnat.acats/c6/c650001.a: Likewise.
	* gnat.acats/c7/c74302b.ada: Likewise.
	* gnat.acats/c7/c74306a.ada: Likewise.
	* gnat.acats/c8/c85014a.ada: Likewise.
	* gnat.acats/c8/c85014b.ada: Likewise.
	* gnat.acats/c8/c85014c.ada: Likewise.
	* gnat.acats/c8/c87b26b.ada: Likewise.
	* gnat.acats/c8/c87b41a.ada: Likewise.
	* gnat.acats/c9/c99004a.ada: Likewise.
	* gnat.acats/cb/cb40005.a: Likewise.
	* gnat.acats/cc/cc3019c0.ada: Likewise.
	* gnat.acats/cc/cc51b03.a: Likewise.
	* gnat.acats/cc/cc51d02.a: Likewise.
	* gnat.acats/cd/cd10002.a: Likewise.
	* gnat.acats/cd/cdd2a03.a: Likewise.
	* gnat.acats/cxa/cxac005.a: Likewise.

	* gnat.acats/c7/c731001.a: Add dg-options "-O2 -gnatE".
	* gnat.acats/c8/c854002.a: Likewise.
	* gnat.acats/ca/ca11018.a: Likewise.
	* gnat.acats/ca/ca11019.a: Likewise.
	* gnat.acats/ca/ca5006a.ada: Likewise.

	* gnat.acats/c4/c45304a.ada: Add dg-options "-O2 -gnato".
	* gnat.acats/c4/c45304b.dep: Likewise.
	* gnat.acats/c4/c45304c.dep: Likewise.
	* gnat.acats/c4/c45504a.ada: Likewise.
	* gnat.acats/c4/c45504b.dep: Likewise.
	* gnat.acats/c4/c45504c.dep: Likewise.
	* gnat.acats/c4/c45613a.ada: Likewise.
	* gnat.acats/c4/c45613b.dep: Likewise.
	* gnat.acats/c4/c45613c.dep: Likewise.
	* gnat.acats/c4/c45632a.ada: Likewise.
	* gnat.acats/c4/c45632b.dep: Likewise.
	* gnat.acats/c4/c45632c.dep: Likewise.
	* gnat.acats/c4/c460008.a: Likewise.
	* gnat.acats/c4/c460011.a: Likewise.
	* gnat.acats/c4/c46014a.ada: Likewise.
	* gnat.acats/c4/c4a012b.ada: Likewise.

	* gnat.acats/c5/c52103x.ada: Add dg-options "-O2 -fstack-check".
	* gnat.acats/c5/c52104x.ada: Likewise.
	* gnat.acats/c5/c52104y.ada: Likewise.
	* gnat.acats/cb/cb1010a.ada: Likewise.
	* gnat.acats/cb/cb1010c.ada: Likewise.
	* gnat.acats/cb/cb1010d.ada: Likewise.

	* gnat.acats/cd/cd300050.am: Add dg-additional-sources cd300051.c.
	* gnat.acats/cxb/cxb30040.c: Add dg-additional-sources cxb30040.c.
	* gnat.acats/cxb/cxb30130.c: Add dg-additional-sources
	cxb30130.c cxb30131.c.

diff -r aac10ed0d741 contrib/dg-extract-results.sh
--- a/contrib/dg-extract-results.sh	Sun Feb 06 03:35:12 2011 +0100
+++ b/contrib/dg-extract-results.sh	Sun Feb 06 22:33:34 2011 +0100
@@ -6,7 +6,7 @@
 # The resulting file can be used with test result comparison scripts for
 # results from tests that were run in parallel.  See usage() below.
 
-# Copyright (C) 2008, 2009, 2010 Free Software Foundation
+# Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation
 # Contributed by Janis Johnson <janis187@us.ibm.com>
 #
 # This file is part of GCC.
@@ -142,65 +142,6 @@
   fi
 fi
 
-if [ "$TOOL" = acats ]; then
-  # Acats *.sum or *.log files aren't dejagnu generated, and they have
-  # somewhat different format.
-  ACATS_AWK=${TMP}/acats.awk
-  cat <<EOF > $ACATS_AWK
-BEGIN {
-  print_prologue=1; curfile=""; insummary=0
-  passcnt=0; failcnt=0; unsupcnt=0; failures=""
-}
-/^[ \t]*=== acats configuration ===/ {
-  insummary=0
-  if (print_prologue) print
-  next
-}
-/^[ \t]*=== acats tests ===/ {
-  if (print_prologue) print
-  print_prologue=0
-  next
-}
-/^Running chapter / {
-  if (curfile) close (curfile)
-  curfile="${TMP}/chapter-"\$3
-  print >> curfile
-  next
-}
-/^[ \t]*=== acats Summary ===/ {
-  if (curfile) close (curfile)
-  curfile=""
-  insummary=1
-  next
-}
-/^# of expected passes/		{ if (insummary == 1) passcnt += \$5; next; }
-/^# of unexpected failures/	{ if (insummary == 1) failcnt += \$5; next; }
-/^# of unsupported tests/	{ if (insummary == 1) unsupcnt += \$5; next; }
-/^\*\*\* FAILURES: / {
-  if (insummary == 1) {
-    if (failures) sub(/^\*\*\* FAILURES:/,"")
-    failures=failures""\$0
-  }
-}
-{
-  if (print_prologue) { print; next }
-  if (curfile) print >> curfile
-}
-END {
-  system ("cat ${TMP}/chapter-*")
-  print "		=== acats Summary ==="
-  print "# of expected passes		" passcnt
-  print "# of unexpected failures	" failcnt
-  if (unsupcnt) print "# of unsupported tests		" unsupcnt
-  if (failures) print failures
-}
-EOF
-
-  rm -f ${TMP}/chapter-*
-  $AWK -f $ACATS_AWK $SUM_FILES
-  exit 0
-fi
-
 # If no variants were specified, find all variants in the remaining
 # summary files.  Otherwise, ignore specified variants that aren't in
 # any of those summary files.
diff -r aac10ed0d741 gcc/ada/gcc-interface/Make-lang.in
--- a/gcc/ada/gcc-interface/Make-lang.in	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/ada/gcc-interface/Make-lang.in	Sun Feb 06 22:33:34 2011 +0100
@@ -1,6 +1,6 @@
 # Top level -*- makefile -*- fragment for GNU Ada (GNAT).
 #   Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-#   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 #   Free Software Foundation, Inc.
 
 #This file is part of GCC.
@@ -992,53 +992,28 @@
 	-$(MV) ada/*$(objext) ada/*.ali ada/b_*.c stagefeedback/ada
 	-$(MV) ada/stamp-* stagefeedback/ada
 
+check-ada: check-gnat
+check-ada-subtargets: check-gnat-subtargets
+
 lang_checks += check-gnat
-
-check-ada: check-acats check-gnat
-check-ada-subtargets: check-acats-subtargets check-gnat-subtargets
-
-ACATSDIR = $(TESTSUITEDIR)/ada/acats
-
-check_acats_targets = $(patsubst %,check-acats%, 0 1 2)
-
-check-acats:
-	@test -d $(ACATSDIR) || mkdir -p $(ACATSDIR); \
-	rootme=`${PWD_COMMAND}`; export rootme; \
-	EXPECT=$(EXPECT); export EXPECT; \
-	if [ -z "$(CHAPTERS)" ] && [ "$(filter -j, $(MFLAGS))" = "-j" ]; \
-	then \
-	  $(MAKE) $(check_acats_targets); \
-	  for idx in 0 1 2; do \
-	    mv -f $(ACATSDIR)$$idx/acats.sum $(ACATSDIR)$$idx/acats.sum.sep; \
-	    mv -f $(ACATSDIR)$$idx/acats.log $(ACATSDIR)$$idx/acats.log.sep; \
-	  done; \
-	  $(SHELL) $(srcdir)/../contrib/dg-extract-results.sh \
-	    $(ACATSDIR)0/acats.sum.sep $(ACATSDIR)1/acats.sum.sep \
-	    $(ACATSDIR)2/acats.sum.sep > $(ACATSDIR)/acats.sum; \
-	  $(SHELL) $(srcdir)/../contrib/dg-extract-results.sh -L \
-	    $(ACATSDIR)0/acats.log.sep $(ACATSDIR)1/acats.log.sep \
-	    $(ACATSDIR)2/acats.log.sep > $(ACATSDIR)/acats.log; \
-	  exit 0; \
-	fi; \
-	testdir=`cd ${srcdir}/${ACATSDIR} && ${PWD_COMMAND}`; \
-	export testdir; cd $(ACATSDIR) && $(SHELL) $${testdir}/run_acats $(CHAPTERS)
-
-check-acats-subtargets:
-	@echo $(check_acats_targets)
-
-# Parallelized check-acats
-$(check_acats_targets): check-acats%:
-	test -d $(ACATSDIR)$* || mkdir -p $(ACATSDIR)$*; \
-	testdir=`cd ${srcdir}/${ACATSDIR} && ${PWD_COMMAND}`; \
-	case "$*" in \
-	  0) chapters="`cd $$testdir/tests; echo [a-b]* c[0-4]*`";; \
-	  1) chapters="`cd $$testdir/tests; echo c[5-9ab]*`";; \
-	  2) chapters="`cd $$testdir/tests; echo c[c-z]* [d-z]*`";; \
-	esac; \
-	export testdir; cd $(ACATSDIR)$* && $(SHELL) $${testdir}/run_acats $$chapters
-
-.PHONY: check-acats $(check_acats_targets)
-
+lang_checks_parallelized += check-gnat
+# For description see comment above check_gcc_parallelize in gcc/Makefile.in.
+# FIXME: Adapt when ada/acats/tests gets moved to gnat.acats or simply omit
+# the directory.
+check_gnat_parallelize = acats.exp=tests/\[ab\]* \
+			acats.exp=tests/c\[1-2\]* \
+			acats.exp=tests/c3* \
+			acats.exp=tests/c4* \
+			acats.exp=tests/c\[567\]* \
+			acats.exp=tests/c8* \
+			acats.exp=tests/c9* \
+			acats.exp=tests/c\[ab\]* \
+			acats.exp=tests/cc* \
+			acats.exp=tests/cd* \
+			acats.exp=tests/ce* \
+			acats.exp=tests/c\[f-w\]* \
+			acats.exp=tests/c\[x-z\]* \
+			acats.exp=tests/\[d-z\]*
 
 # Bootstrapping targets for just GNAT - use the same stage directories
 gnatboot: force
diff -r aac10ed0d741 gcc/testsuite/ada/acats/support/impdef.a
--- a/gcc/testsuite/ada/acats/support/impdef.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/support/impdef.a	Sun Feb 06 22:33:34 2011 +0100
@@ -202,7 +202,10 @@
    function Cd30005_Proc (X : Integer) return Integer;
    pragma Import (C, Cd30005_Proc, "_cd30005_1");
  
-   pragma Linker_Options ("ACATS4GNATDIR/support/cd300051.o");
+   -- _cd30005_1 is references by every user of Impdef, so add the file
+   -- here implicitly instead of explicitly.
+   -- FIXME: Maybe do this in gnat-dg.exp (gnat-dg-acats-runtest) instead?
+   pragma Linker_Options ("support/cd300051.o");
  
    CD30005_1_Foreign_Address : constant System.Address:= Cd30005_Proc'Address;
  
@@ -315,7 +318,7 @@
    -- will expect to find the files to process at this location.
 
    Test_Path_Root : constant String :=
-     "ACATS4GNATDIR/tests/c2/";
+     "tests/";
    -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --- MODIFY HERE AS NEEDED
 
    -- The following two strings must not be modified unless the .AW file
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/a/ac3106a.ada
--- a/gcc/testsuite/ada/acats/tests/a/ac3106a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/a/ac3106a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- AC3106A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c3/c34005p.ada
--- a/gcc/testsuite/ada/acats/tests/c3/c34005p.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c3/c34005p.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C34005P.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c3/c34005r.ada
--- a/gcc/testsuite/ada/acats/tests/c3/c34005r.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c3/c34005r.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C34005R.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c3/c34005s.ada
--- a/gcc/testsuite/ada/acats/tests/c3/c34005s.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c3/c34005s.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C34005S.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c3/c34005u.ada
--- a/gcc/testsuite/ada/acats/tests/c3/c34005u.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c3/c34005u.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C34005U.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c3/c34005v.ada
--- a/gcc/testsuite/ada/acats/tests/c3/c34005v.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c3/c34005v.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C34005V.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c3/c34006g.ada
--- a/gcc/testsuite/ada/acats/tests/c3/c34006g.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c3/c34006g.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C34006G.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c3/c34006j.ada
--- a/gcc/testsuite/ada/acats/tests/c3/c34006j.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c3/c34006j.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C34006J.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c3/c34006l.ada
--- a/gcc/testsuite/ada/acats/tests/c3/c34006l.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c3/c34006l.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C34006L.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c3/c34008a.ada
--- a/gcc/testsuite/ada/acats/tests/c3/c34008a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c3/c34008a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C34008A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c3/c3a0014.a
--- a/gcc/testsuite/ada/acats/tests/c3/c3a0014.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c3/c3a0014.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C3A0014.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c41103b.ada
--- a/gcc/testsuite/ada/acats/tests/c4/c41103b.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c41103b.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C41103B.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c41203b.ada
--- a/gcc/testsuite/ada/acats/tests/c4/c41203b.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c41203b.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C41203B.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c41306a.ada
--- a/gcc/testsuite/ada/acats/tests/c4/c41306a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c41306a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C41306A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45304a.ada
--- a/gcc/testsuite/ada/acats/tests/c4/c45304a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45304a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45304A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45304b.dep
--- a/gcc/testsuite/ada/acats/tests/c4/c45304b.dep	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45304b.dep	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45304B.DEP
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45304c.dep
--- a/gcc/testsuite/ada/acats/tests/c4/c45304c.dep	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45304c.dep	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45304C.DEP
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45504a.ada
--- a/gcc/testsuite/ada/acats/tests/c4/c45504a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45504a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45504A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45504b.dep
--- a/gcc/testsuite/ada/acats/tests/c4/c45504b.dep	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45504b.dep	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45504B.DEP
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45504c.dep
--- a/gcc/testsuite/ada/acats/tests/c4/c45504c.dep	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45504c.dep	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45504C.DEP
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45613a.ada
--- a/gcc/testsuite/ada/acats/tests/c4/c45613a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45613a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45613A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45613b.dep
--- a/gcc/testsuite/ada/acats/tests/c4/c45613b.dep	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45613b.dep	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45613B.DEP
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45613c.dep
--- a/gcc/testsuite/ada/acats/tests/c4/c45613c.dep	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45613c.dep	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45613C.DEP
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45632a.ada
--- a/gcc/testsuite/ada/acats/tests/c4/c45632a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45632a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45632A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45632b.dep
--- a/gcc/testsuite/ada/acats/tests/c4/c45632b.dep	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45632b.dep	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45632B.DEP
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c45632c.dep
--- a/gcc/testsuite/ada/acats/tests/c4/c45632c.dep	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c45632c.dep	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C45632C.DEP
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c460008.a
--- a/gcc/testsuite/ada/acats/tests/c4/c460008.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c460008.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C460008.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c460011.a
--- a/gcc/testsuite/ada/acats/tests/c4/c460011.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c460011.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C460011.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c46014a.ada
--- a/gcc/testsuite/ada/acats/tests/c4/c46014a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c46014a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C46014A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c460a01.a
--- a/gcc/testsuite/ada/acats/tests/c4/c460a01.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c460a01.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C460A01.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c4/c4a012b.ada
--- a/gcc/testsuite/ada/acats/tests/c4/c4a012b.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c4/c4a012b.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnato" }
+
 -- C4A012B.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c5/c52103x.ada
--- a/gcc/testsuite/ada/acats/tests/c5/c52103x.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c5/c52103x.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -fstack-check" }
+
 -- C52103X.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c5/c52104x.ada
--- a/gcc/testsuite/ada/acats/tests/c5/c52104x.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c5/c52104x.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -fstack-check" }
+
 -- C52104X.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c5/c52104y.ada
--- a/gcc/testsuite/ada/acats/tests/c5/c52104y.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c5/c52104y.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -fstack-check" }
+
 -- C52104Y.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c6/c650001.a
--- a/gcc/testsuite/ada/acats/tests/c6/c650001.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c6/c650001.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C650001.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c7/c731001.a
--- a/gcc/testsuite/ada/acats/tests/c7/c731001.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c7/c731001.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnatE" }
+
 -- C731001.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c7/c74302b.ada
--- a/gcc/testsuite/ada/acats/tests/c7/c74302b.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c7/c74302b.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C74302B.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c7/c74306a.ada
--- a/gcc/testsuite/ada/acats/tests/c7/c74306a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c7/c74306a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C74306A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c8/c85014a.ada
--- a/gcc/testsuite/ada/acats/tests/c8/c85014a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c8/c85014a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C85014A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c8/c85014b.ada
--- a/gcc/testsuite/ada/acats/tests/c8/c85014b.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c8/c85014b.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C85014B.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c8/c85014c.ada
--- a/gcc/testsuite/ada/acats/tests/c8/c85014c.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c8/c85014c.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C85014C.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c8/c854002.a
--- a/gcc/testsuite/ada/acats/tests/c8/c854002.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c8/c854002.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnatE" }
+
 -- C854002.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c8/c87b26b.ada
--- a/gcc/testsuite/ada/acats/tests/c8/c87b26b.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c8/c87b26b.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C87B26B.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c8/c87b41a.ada
--- a/gcc/testsuite/ada/acats/tests/c8/c87b41a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c8/c87b41a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C87B41A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/c9/c99004a.ada
--- a/gcc/testsuite/ada/acats/tests/c9/c99004a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/c9/c99004a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- C99004A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/ca/ca11018.a
--- a/gcc/testsuite/ada/acats/tests/ca/ca11018.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/ca/ca11018.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnatE" }
+
 -- CA11018.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/ca/ca11019.a
--- a/gcc/testsuite/ada/acats/tests/ca/ca11019.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/ca/ca11019.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnatE" }
+
 -- CA11019.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/ca/ca5006a.ada
--- a/gcc/testsuite/ada/acats/tests/ca/ca5006a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/ca/ca5006a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnatE" }
+
 -- CA5006A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cb/cb1010a.ada
--- a/gcc/testsuite/ada/acats/tests/cb/cb1010a.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cb/cb1010a.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -fstack-check" }
+
 -- CB1010A.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cb/cb1010c.ada
--- a/gcc/testsuite/ada/acats/tests/cb/cb1010c.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cb/cb1010c.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -fstack-check" }
+
 -- CB1010C.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cb/cb1010d.ada
--- a/gcc/testsuite/ada/acats/tests/cb/cb1010d.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cb/cb1010d.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -fstack-check" }
+
 -- CB1010D.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cb/cb40005.a
--- a/gcc/testsuite/ada/acats/tests/cb/cb40005.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cb/cb40005.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- CB40005.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cc/cc3019c0.ada
--- a/gcc/testsuite/ada/acats/tests/cc/cc3019c0.ada	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cc/cc3019c0.ada	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- CC3019C0.ADA
 
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cc/cc51b03.a
--- a/gcc/testsuite/ada/acats/tests/cc/cc51b03.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cc/cc51b03.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- CC51B03.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cc/cc51d02.a
--- a/gcc/testsuite/ada/acats/tests/cc/cc51d02.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cc/cc51d02.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- CC51D02.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cd/cd10002.a
--- a/gcc/testsuite/ada/acats/tests/cd/cd10002.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cd/cd10002.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- CD10002.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cd/cd300050.am
--- a/gcc/testsuite/ada/acats/tests/cd/cd300050.am	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cd/cd300050.am	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,6 @@
+-- Don't, already added implicitly.
+-- { dg- additional-sources "cd300051.c" } */
+
 -- CD30005.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cd/cdd2a03.a
--- a/gcc/testsuite/ada/acats/tests/cd/cdd2a03.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cd/cdd2a03.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- CDD2A03.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cxa/cxac005.a
--- a/gcc/testsuite/ada/acats/tests/cxa/cxac005.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cxa/cxac005.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -gnat95" }
+
 -- CXAC005.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cxb/cxb30040.c
--- a/gcc/testsuite/ada/acats/tests/cxb/cxb30040.c	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cxb/cxb30040.c	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+/* { dg-additional-sources "cxb30040.c" } */
+
 /*
 -- CXB30040.C
 --
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cxb/cxb30130.c
--- a/gcc/testsuite/ada/acats/tests/cxb/cxb30130.c	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cxb/cxb30130.c	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+/* { dg-additional-sources "cxb30130.c cxb30131.c" } */
+
 /*
 -- CXB30130.C                                                            
 --                                                                       
diff -r aac10ed0d741 gcc/testsuite/ada/acats/tests/cxh/cxh1001.a
--- a/gcc/testsuite/ada/acats/tests/cxh/cxh1001.a	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/ada/acats/tests/cxh/cxh1001.a	Sun Feb 06 22:33:34 2011 +0100
@@ -1,3 +1,5 @@
+-- { dg-options "-O2 -a -f" }
+--
 -- CXH1001.A
 --
 --                             Grant of Unlimited Rights
diff -r aac10ed0d741 gcc/testsuite/gnat.acats/acats.exp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gnat.acats/acats.exp	Sun Feb 06 22:33:34 2011 +0100
@@ -0,0 +1,55 @@
+# Copyright (C) 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+# Load support procs.
+load_lib gnat-dg.exp
+
+# If a testcase doesn't have special options, use these.
+# FIXME: CFLAGS seems wrong for Ada, cf. gcc/ada/Make*.
+global DEFAULT_CFLAGS
+if ![info exists DEFAULT_CFLAGS] then {
+    set DEFAULT_CFLAGS "-O2"
+}
+
+# The ACATS tests are all run tests.
+set saved-dg-do-what ${dg-do-what-default}
+set dg-do-what-default run
+
+# FIXME: Look in old ACATS directory for the moment.
+set saved-srcdir $srcdir
+set srcdir "$srcdir/ada/acats/tests"
+
+# Initialize `dg'
+dg-init
+gnat-acats-init
+
+# Main loop.
+# Some source files are preprocessed, so search testdir, too.
+# Only use first one of multifile testcases.
+gnat-dg-acats-runtest [lsort \
+	[glob -nocomplain $srcdir/*/???????{,0}.{a,ada,adt,am,c,dep} \
+		tests/???????{,0}.{a,ada,adt,am,c,dep}]] \
+	"" "$DEFAULT_CFLAGS"
+
+set srcdir ${saved-srcdir}
+set dg-do-what-default ${saved-dg-do-what}
+
+# All done.
+dg-finish
+gnat-acats-finish
+
+# Unset again so gnat.dg isn't affected.
+unset DEFAULT_CFLAGS
diff -r aac10ed0d741 gcc/testsuite/lib/gnat-dg.exp
--- a/gcc/testsuite/lib/gnat-dg.exp	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/lib/gnat-dg.exp	Sun Feb 06 22:33:34 2011 +0100
@@ -39,10 +39,11 @@
     if { [lindex $clean_result 0] != -1 } {
 	set clean_files [lindex $clean_result 1]
 	# Purge NL from clean_files.
-	regsub -all "\[\r\n\]+" $clean_files " " clean_files
+	regsub -all "\[\n\r\]+" $clean_files " " clean_files
 	# Remove ./ so lremove works.
 	regsub -all "\./" $clean_files "" clean_files
 	lremove clean_files $output_file
+	verbose -log "clean_files = $clean_files"
 	eval remote_file host delete $clean_files
     }
 
@@ -60,6 +61,144 @@
     return [gcc-dg-prune $system $text]
 }
 
+# Process dg-* keywords from SRC, which is the gnatchop input, but only the
+# output gets passed to dg-test.
+proc acats-get-options { src } {
+    # dg-options sets a variable called dg-extra-tool-flags.
+    set dg-extra-tool-flags ""
+
+    # current_compiler_flags reads tool_flags from the same stack frame
+    # as dg-extra-tool-flags
+    set tool_flags ""
+
+    set tmp [dg-get-options $src]
+    foreach op $tmp {
+	set cmd [lindex $op 0]
+	if { ![string compare "dg-additional-sources" $cmd] \
+	     || ![string compare "dg-options" $cmd] } {
+	    set status [catch "$op" errmsg]
+	    if { $status != 0 } {
+		perror "$src: $errmsg for \"$op\"\n"
+		unresolved "$src: $errmsg for \"$op\""
+		return
+	    }
+	} else {
+	    # Ignore unrecognized dg- commands, but warn about them.
+	    warning "gnat-dg.exp does not support $cmd"
+	}
+    }
+
+    # Return flags to use for compiling the primary source file and for
+    # linking.
+    return ${dg-extra-tool-flags}
+}
+
+# FIXME: Describe.
+proc gnat-dg-acats-runtest { testcases flags default-extra-flags } {
+    global runtests
+    global board_info
+
+    # FIXME: Better use set_board_info, unset_board_info from targetdb.exp?
+    # Or global var or uplevel N info proc ... to say `we are in ACATS'?
+    # Only used for in gnat.exp (gnat_target_compile) for
+    # additional_flags=-Isupport -gnatws.
+    # Pass as FLAGS to gnat-dg-acats-runtest?  Works, but they show up in
+    # gnat.sum.
+    set board_info(gnat,acats) 1
+
+    foreach testcase $testcases {
+	# If we're only testing specific files and this isn't one of them,
+	# skip it.
+	if ![runtest_file_p $runtests $testcase] {
+	    continue
+	}
+	verbose "Testing [file tail [file dirname $testcase]]/[file tail $testcase]"
+	
+	global srcdir subdir
+	set subdir [file dirname [dg-trim-dirname $srcdir $testcase]]
+
+	# FIXME: Which ACATS files need to be chopped at all?  Cf. ACATS-UG.
+	if [string match "*/???????0.*" $testcase] {
+	    # FIXME: Explain.
+	    regsub "0\\..*" $testcase "?.{a,ada,adt,am,dep}" testpattern
+	    set testfiles [lsort [glob -nocomplain $testpattern]]
+	} else {
+	    set testfiles $testcase
+	}
+	verbose -log "testfiles = $testfiles"
+
+	# Skip bogus tests (no Ada components).
+	if { "$testfiles" == "" } {
+	    # FIXME: Warn?
+	    continue
+	}
+
+	# FIXME: Perhaps move to gnat_init?
+	gnat_set_ada_env_vars
+
+	# Determine options from testcase source, not gnatchop output.
+	set extra_flags [acats-get-options $testcase]
+	if { $extra_flags != "" } {
+	    set save_flags $flags
+	    eval lappend flags $extra_flags
+	}
+
+	# Chop input files.
+	set chop_result [remote_exec host [find_gnatchop] "-c -w $testfiles"]
+	if { [lindex $chop_result 0] != -1 } {
+	    set clean_files [lindex $chop_result 1]
+	    # Filter out warnings.
+	    regsub -all "warning: \[^\n\r\]+\[\n\r]\+" $clean_files "" clean_files
+	    # Filter out gnat.adc message, but keep gnat.adc.
+	    regsub -all "\[^\n\r\]+ configuration pragmas from \[^\n\r\]+ to " $clean_files "" clean_files
+	    # Filter out comments so sources are not removed.
+	    regsub -all "splitting \[^\n\r\]+ into:\[\n\r\]+" $clean_files "" clean_files
+	    # Purge NL from clean_files.
+	    regsub -all "\[\n\r\]+" $clean_files " " clean_files
+	    verbose -log "clean_files = $clean_files"
+	}
+
+	set basename [file rootname [file tail $testcase]]
+	# FIXME: Handle via dg-* keywords rather than here?
+	switch -glob $basename {
+	    "ca1020e*" {
+		remote_file host delete ca1020e_func1.adb ca1020e_func2.adb \
+		    ca1020e_proc1.adb ca1020e_proc2.adb
+	    }
+	    "ca14028*" {
+		remote_file host delete ca14028_func2.ads ca14028_func3.ads \
+		    ca14028_proc1.ads ca14028_proc3.ads
+	    }
+	    "cxh1001*" {
+		set out [open gnat.adc w]
+		puts $out "pragma Normalize_Scalars;"
+		close $out
+		lappend clean_files gnat.adc
+	    }
+	}
+
+	# Change testcase to reflect this.  FIXME: What is this?
+	set basename [file rootname [file tail $testcase]]
+	# Take only 7 characters.
+	set basename [string range $basename 0 6]
+	set mainfiles [lsort [glob -nocomplain $basename?.adb]]
+	eval lappend mainfiles [lsort [glob -nocomplain $basename*m.adb]]
+	eval lappend mainfiles [lsort [glob -nocomplain $basename.adb]]
+	set testcase [lindex $mainfiles [expr [llength $mainfiles]-1]]
+
+	dg-test $testcase $flags ${default-extra-flags}
+
+	eval remote_file host delete $clean_files
+
+	# Restore flags for next testcase.
+	if { $extra_flags != "" } {
+	    set flags $save_flags
+	}
+    }
+
+    unset board_info(gnat,acats)
+}
+
 # Utility routines.
 
 #
@@ -79,7 +218,23 @@
 	if { [regexp "tasking not implemented" $output] } {
 	    return [list "unsupported" $output]
 	}
-	return $result
+
+	#
+	# For ACATS tests, PASS or FAIL doesn't depend on exit status, but
+	# on test output.  Cf. report.adb:
+	#
+	# status		pattern
+	#
+	# PASS			==== 
+	# DOES_NOT_APPLY	++++ 
+	# ACTION_REQUIRED	!!!! 
+	# OTHERS		**** 
+	#
+	if { [regexp {==== |\+\+\+\+ |!!!! } $output] } {
+	    return [list "pass" $output]
+	} else {
+	    return $result
+	}
     }
 }
 
diff -r aac10ed0d741 gcc/testsuite/lib/gnat.exp
--- a/gcc/testsuite/lib/gnat.exp	Sun Feb 06 03:35:12 2011 +0100
+++ b/gcc/testsuite/lib/gnat.exp	Sun Feb 06 22:33:34 2011 +0100
@@ -25,6 +25,7 @@
 load_lib gcc-defs.exp
 load_lib gcc.exp
 load_lib timeout.exp
+load_lib copy-file.exp
 
 #
 # GNAT_UNDER_TEST is the compiler under test.
@@ -107,16 +108,215 @@
     }
 }
 
+# Build ACATS support files first, but not in gnat_init which is generic.
+proc gnat-acats-init { } {
+    global srcdir
+    global target_triplet
+    global env
+
+    # FIXME: Explain.  Adapt later.
+    set support $srcdir/../support
+
+    # FIXME: Only put *.tst files from tests into ., place support file in
+    # support subdir, thus avoiding tests just as in future gnat.acats,
+    # and simply prune support?
+    file mkdir tests
+    file mkdir support
+
+    gnat_target_compile $support/impbit.adb impbit executable ""
+    set result [remote_exec target impbit "" ""]
+    if { [lindex $result 0] != -1 } {
+	set target_bit [lindex $result 1]
+	# Purge NL from target_bit.
+	regsub -all "\[\r\n\]+" $target_bit "" target_bit
+	verbose -log "target_bit = $target_bit"
+    }
+    # FIXME: Cleanup.
+    # Currently handled in gnat-dg-test, move elsewhere, perhaps
+    # gnat_target_compile?
+    eval remote_exec host [find_gnatclean] impbit
+
+    switch $target_triplet {
+	"ia64*-*-*" -
+	"s390*-*-*" {
+	    set target_insn "nop 0"
+	}
+	"mmix-*-*" {
+	    set target_insn "swym 0"
+	}
+	default {
+	    set target_insn "nop"
+	}
+    }
+    verbose -log "target_insn = $target_insn"
+
+    # Unset environment variables that interfere with host compiler.
+    if { [info exists env(ADA_INCLUDE_PATH)] } {
+	verbose -log "unsetting ADA_INCLUDE_PATH"
+	set orig_ada_include_path $env(ADA_INCLUDE_PATH)
+	unsetenv ADA_INCLUDE_PATH
+    }
+    if { [info exists env(ADA_OBJECTS_PATH)] } {
+	verbose -log "unsetting ADA_OBJECTS_PATH"
+	set orig_ada_objects_path $env(ADA_OBJECTS_PATH)
+	unsetenv ADA_OBJECTS_PATH
+    }
+    if { [info exists env(GCC_EXEC_PREFIX)] } {
+	verbose -log "unsetting GCC_EXEC_PREFIX"
+	set orig_gcc_exec_prefix $env(GCC_EXEC_PREFIX)
+	unsetenv GCC_EXEC_PREFIX
+    }
+
+    remote_exec host [which gnatchop] \
+	"-c -w [glob -nocomplain $support/*.{a,ada}] support"
+
+    set inp [open $support/macro.dfs r]
+    set out [open MACRO.DFS w]
+    while { [gets $inp line] >= 0 } {
+	# FIXME: Rather substitute ^(ACC|TASK)_SIZE instead.
+	regsub -all "ACATS4GNATBIT" $line $target_bit line
+	# FIXME: Rather substitute ^MACHINE_CODE_STATEMENT with
+	# MACHINE_CODE_STATEMENT     Asm_Insn'(Asm ("$target_insn"));
+	regsub -all "ACATS4GNATINSN" $line $target_insn line
+	puts $out $line
+    }
+    close $inp
+    close $out
+
+    gcc_copy_files [glob -nocomplain $srcdir/*/*.tst] tests
+    gcc_copy_files [glob -nocomplain $support/*.tst] support
+    set out [open TSTTESTS.DAT w]
+    foreach tst [glob -nocomplain */*.tst] {
+	puts $out $tst
+    }
+    close $out
+
+    remote_exec host [which gnatmake] "-q -gnatws support/macrosub.adb"
+    remote_load host ./macrosub
+    eval remote_exec host [which gnatclean] macrosub
+    file_on_host delete MACRO.DFS
+    file_on_host delete TSTTESTS.DAT
+
+    # FIXME: How to properly locate host CC?  $env(CC)?
+    # Cf. below why file is needed.
+    remote_exec host [which gcc] "-c $srcdir/cd/cd300051.c -o support/cd300051.o"
+
+    # Copy c2/c25000[12].aw into build dir, postprocessed by widechr.
+    gcc_copy_files [glob -nocomplain $srcdir/c2/*.aw] tests
+
+    remote_exec host [which gnatmake] "-q -gnatws support/widechr.adb"
+    remote_load host ./widechr
+    eval remote_exec host [which gnatclean] widechr
+
+    # Restore environment variables.
+    if { $orig_ada_include_path != "" } {
+	setenv ADA_INCLUDE_PATH $orig_ada_include_path
+    }
+    if { $orig_ada_objects_path != "" } {
+	setenv ADA_OBJECTS_PATH $orig_ada_objects_path
+    }
+    if { $orig_gcc_exec_prefix != "" } {
+	setenv GCC_EXEC_PREFIX $orig_gcc_exec_prefix
+    }
+
+    # Used implicitly by every testcase via pragma Linker_Options in
+    # support/impdef.a.
+    # FIXME: Somehow avoid this?
+    gnat_target_compile $srcdir/cd/cd300051.c support/cd300051.o object ""
+
+    remote_exec host [find_gnatchop] \
+	"-c -w [glob -nocomplain tests/*.adt tests]"
+    remote_exec host [find_gnatchop] \
+	"-c -w [glob -nocomplain support/*.adt support]"
+
+    # FIXME: Explain -gnato -gnatE?
+    lappend opts "additional_flags=-gnatws -O2 -gnato -gnatE -D support"
+    foreach src [glob -nocomplain support/*.ad\[sb\]] {
+	set obj [file rootname [file tail $src]].o
+	gnat_target_compile $src $obj object $opts
+    }
+}
+
+# Cleanup ACATS support files.
+proc gnat-acats-finish { } {
+    # FIXME: Maybe remember file lists in gnat-acats-init?
+    # Simply remove support and tests subdirs.
+}
+
+proc gnat_set_ada_env_vars { } {
+    global rtsdir
+
+    if [info exists TOOL_OPTIONS] {
+	set rtsdir "[get_multilibs ${TOOL_OPTIONS}]/libada"
+    } else {
+	set rtsdir "[get_multilibs]/libada"
+    }
+
+    # gnatlink looks for system.ads itself and has no --RTS option, so
+    # specify via environment
+    setenv ADA_INCLUDE_PATH "$rtsdir/adainclude"
+    setenv ADA_OBJECTS_PATH "$rtsdir/adainclude"
+    # Always log so compilations can be repeated manually.
+    verbose -log "ADA_INCLUDE_PATH=$rtsdir/adainclude"
+    verbose -log "ADA_OBJECTS_PATH=$rtsdir/adainclude"
+}
+
+# FIXME: Modified version of dg-additional-files-options.
+# Perhaps avoid this by playing games with SOURCE?
+#
+# Return an updated version of OPTIONS that mentions any additional
+# source files registered with dg-additional-sources.  SOURCE is the
+# name of the test case.
+
+proc gnat-dg-additional-sources-options { options source } {
+    global additional_sources
+    global srcdir subdir
+
+    set to_download [list]
+    if { $additional_sources != "" } then {
+	foreach src $additional_sources {
+	    lappend srcs $src
+
+	    set obj [file rootname [file tail $src]].o
+	    lappend objs $obj
+	}
+
+	# FIXME: Explain -largs/-margs.
+	lappend options "additional_flags=-largs $objs -margs"
+
+	set to_download [concat $to_download $objs]
+	set additional_sources ""
+
+	# Only compile after additional_sources has been been cleared,
+	# otherwise the sources are added twice.
+	# Need to compile here since gnatmake cannot handle non-Ada sources.
+	foreach src $srcs {
+	    set obj [file rootname [file tail $src]].o
+	    # FIXME: Error handling.
+	    gnat_target_compile $srcdir/$subdir/$src $obj object ""
+	}
+    }
+    if [is_remote host] {
+	foreach file $to_download {
+	    remote_download host $file
+	}
+    }
+
+    return $options
+}
+
 proc gnat_target_compile { source dest type options } {
     global rootme
     global tmpdir
     global gluefile wrap_flags
     global srcdir
+    global rtsdir
     global GNAT_UNDER_TEST
     global TOOL_OPTIONS
     global gnat_target_current
+    global board_info
 
-    # dg-require-effective-target tests must be compiled as C.
+    # gnatmake cannot compile C files, so do this explicitly.
     if [ string match "*.c" $source ] then {
 	return [gcc_target_compile $source $dest $type $options]
     }
@@ -125,30 +325,30 @@
     # GNAT_UNDER_TEST and the appropriate RTS.
     if { $gnat_target_current!="[current_target_name]" } {
 	set gnat_target_current "[current_target_name]"
-	if [info exists TOOL_OPTIONS] {
-	    set rtsdir "[get_multilibs ${TOOL_OPTIONS}]/libada"
-	} else {
-	    set rtsdir "[get_multilibs]/libada"
-	}
+
+	gnat_set_ada_env_vars
+
 	if [info exists TOOL_EXECUTABLE] {
 	    set GNAT_UNDER_TEST "$TOOL_EXECUTABLE"
 	} else {
 	    set GNAT_UNDER_TEST "[local_find_gnatmake]"
 	}
         set GNAT_UNDER_TEST "$GNAT_UNDER_TEST --RTS=$rtsdir"
-
-	# gnatlink looks for system.ads itself and has no --RTS option, so
-	# specify via environment
-	setenv ADA_INCLUDE_PATH "$rtsdir/adainclude"
-	setenv ADA_OBJECTS_PATH "$rtsdir/adainclude"
-	# Always log so compilations can be repeated manually.
-	verbose -log "ADA_INCLUDE_PATH=$rtsdir/adainclude"
-	verbose -log "ADA_OBJECTS_PATH=$rtsdir/adainclude"
     }
 
-    lappend options "compiler=$GNAT_UNDER_TEST -q -f"
+    # FIXME: Is -f necessary/desirable for gnat.dg?  It hurts for gnat.acats.
+    # Why?
+    #lappend options "compiler=$GNAT_UNDER_TEST -q -f"
+    lappend options "compiler=$GNAT_UNDER_TEST -q"
     lappend options "timeout=[timeout_value]"
 
+    # FIXME: What's right here, target_info or board_info?
+    if [info exists board_info(gnat,acats)] {
+	# Pass -Isupport to locate support files.
+	# FIXME: Why -gnatws?
+	lappend options "additional_flags=-Isupport -gnatws"
+    }
+
     if { [target_info needs_status_wrapper]!="" && [info exists gluefile] } {
 	lappend options "libs=${gluefile}"
 	lappend options "ldflags=$wrap_flags"
@@ -160,6 +360,7 @@
 	set options [concat "additional_flags=$TOOL_OPTIONS" $options]
     }
 
+    set options [gnat-dg-additional-sources-options $options $source]
     return [target_compile $source $dest $type $options]
 }
 
@@ -234,6 +435,26 @@
     return $gnatclean
 }
 
+proc find_gnatchop {} {
+    global tool_root_dir
+
+    if ![is_remote host] {
+        set file [lookfor_file $tool_root_dir gnatchop]
+        if { $file == "" } {
+	    set file [lookfor_file $tool_root_dir gcc/gnatchop]
+        }
+        if { $file != "" } {
+	    set root [file dirname $file]
+	    set CC "$file --GCC=$root/xgcc";
+        } else {
+	    set CC [transform gnatchop]
+        }
+    } else {
+        set CC [transform gnatchop]
+    }
+    return $CC
+}
+
 # Local Variables:
 # tcl-indent-level:4
 # End:


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]