aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mmitchel@gcc.gnu.org>2003-05-12 15:24:31 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2003-05-12 15:24:31 +0000
commitdc7c7ad6bcf9ba652c350f7c27f6a1181440d9eb (patch)
treed07457d6426d0ceba9a993232a4c4ca2a381c7cc /gcc
parent212e2065867d845834a01284aa2526828f7fd7b2 (diff)
downloadgcc-dc7c7ad6bcf9ba652c350f7c27f6a1181440d9eb.zip
gcc-dc7c7ad6bcf9ba652c350f7c27f6a1181440d9eb.tar.gz
gcc-dc7c7ad6bcf9ba652c350f7c27f6a1181440d9eb.tar.bz2
g++.exp: Tweak handling of additional source files.
* lib/g++.exp: Tweak handling of additional source files. * g++.dg/special/conpr-2.C: Use dg-gpp-additional-sources. * g++.dg/special/conpr-2a.C: Rename to ... * g++.dg/special/conpr-2a.cc: ... this. * g++.dg/special/conpr-3.C: Use dg-gpp-additional-sources. * g++.dg/special/conpr-3a.C: Rename to ... * g++.dg/special/conpr-3a.cc: This. * g++.dg/special/conpr-3b.C: Rename to ... * g++.dg/special/conpr-3b.cc: This. * g++.dg/special/conpr-4.C: New test. * g++.dg/special/ecos.exp: Rewrite to use ordinary dg driver. From-SVN: r66721
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.dg/special/conpr-2.C1
-rw-r--r--gcc/testsuite/g++.dg/special/conpr-2a.cc (renamed from gcc/testsuite/g++.dg/special/conpr-2a.C)0
-rw-r--r--gcc/testsuite/g++.dg/special/conpr-3.C1
-rw-r--r--gcc/testsuite/g++.dg/special/conpr-3a.cc (renamed from gcc/testsuite/g++.dg/special/conpr-3a.C)0
-rw-r--r--gcc/testsuite/g++.dg/special/conpr-3b.cc (renamed from gcc/testsuite/g++.dg/special/conpr-3b.C)0
-rw-r--r--gcc/testsuite/g++.dg/special/conpr-4.C23
-rw-r--r--gcc/testsuite/g++.dg/special/ecos.exp86
-rw-r--r--gcc/testsuite/lib/g++.exp2
8 files changed, 37 insertions, 76 deletions
diff --git a/gcc/testsuite/g++.dg/special/conpr-2.C b/gcc/testsuite/g++.dg/special/conpr-2.C
index 2deeb01..9c482b9 100644
--- a/gcc/testsuite/g++.dg/special/conpr-2.C
+++ b/gcc/testsuite/g++.dg/special/conpr-2.C
@@ -1,5 +1,6 @@
/* This doesn't work on solaris2 for reasons described in PR 6482. */
/* { dg-do run { xfail *-*-solaris2* } } */
+/* { dg-gpp-additional-sources "conpr-2a.cc" } */
#include <stdlib.h>
diff --git a/gcc/testsuite/g++.dg/special/conpr-2a.C b/gcc/testsuite/g++.dg/special/conpr-2a.cc
index 69fb7d6..69fb7d6 100644
--- a/gcc/testsuite/g++.dg/special/conpr-2a.C
+++ b/gcc/testsuite/g++.dg/special/conpr-2a.cc
diff --git a/gcc/testsuite/g++.dg/special/conpr-3.C b/gcc/testsuite/g++.dg/special/conpr-3.C
index c5fc235..3fe5741 100644
--- a/gcc/testsuite/g++.dg/special/conpr-3.C
+++ b/gcc/testsuite/g++.dg/special/conpr-3.C
@@ -1,4 +1,5 @@
/* { dg-do run } */
+/* { dg-gpp-additional-sources "conpr-3a.cc conpr-3b.cc" } */
#include <stdlib.h>
diff --git a/gcc/testsuite/g++.dg/special/conpr-3a.C b/gcc/testsuite/g++.dg/special/conpr-3a.cc
index b237bb5..b237bb5 100644
--- a/gcc/testsuite/g++.dg/special/conpr-3a.C
+++ b/gcc/testsuite/g++.dg/special/conpr-3a.cc
diff --git a/gcc/testsuite/g++.dg/special/conpr-3b.C b/gcc/testsuite/g++.dg/special/conpr-3b.cc
index b5efa0c..b5efa0c 100644
--- a/gcc/testsuite/g++.dg/special/conpr-3b.C
+++ b/gcc/testsuite/g++.dg/special/conpr-3b.cc
diff --git a/gcc/testsuite/g++.dg/special/conpr-4.C b/gcc/testsuite/g++.dg/special/conpr-4.C
new file mode 100644
index 0000000..68ac543
--- /dev/null
+++ b/gcc/testsuite/g++.dg/special/conpr-4.C
@@ -0,0 +1,23 @@
+/* { dg-do run } */
+/* { dg-gpp-additional-sources "conpr-3b.cc conpr-3a.cc" } */
+
+#include <stdlib.h>
+
+class foo_t {
+ int x;
+ static int count;
+public:
+ foo_t(void) { x=++count; }
+ int get(void) { return x; }
+};
+
+int foo_t::count;
+
+extern foo_t foo1, foo2;
+
+int main(void) {
+
+ if ( (foo1.get() != 2) || (foo2.get() != 1) )
+ abort();
+ exit(0);
+}
diff --git a/gcc/testsuite/g++.dg/special/ecos.exp b/gcc/testsuite/g++.dg/special/ecos.exp
index 0a9eff9..dc34ff8 100644
--- a/gcc/testsuite/g++.dg/special/ecos.exp
+++ b/gcc/testsuite/g++.dg/special/ecos.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2001, 2003 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
@@ -24,85 +24,21 @@
# Load support procs.
load_lib g++-dg.exp
-###########
-# conpr-1.C
-###########
+# Test for whether or not __attribute__((init_priority)) is supported
+# by the platform.
-dg-init
-set lines [g++_target_compile "$srcdir/$subdir/conpr-1.C" "$objdir/conpr-1.exe" executable ""]
-if [string match "*init_priority*" $lines] then {
- xfail "conpr-1.C"
- file delete $objdir/conpr-1.exe
-} elseif ![string match "" $lines] then {
- fail "conpr-1.C"
-} else {
- dg-runtest "$srcdir/$subdir/conpr-1.C" "" ""
- file delete $objdir/conpr-1.exe
+set comp_output [g++_target_compile \
+ "$srcdir/$subdir/initp1.C" "initp1.S" assembly ""]
+if { [string match "*init_priority*" $comp_output] } {
+ return 0
}
-dg-finish
-
-
-###########
-# conpr-2.C
-###########
+# Initialize 'dg'.
dg-init
-set lines [g++_target_compile "$srcdir/$subdir/conpr-2a.C" "conpr-2a.o" object ""]
-if [string match "*init_priority*" $lines] then {
- xfail "conpr-2a.o"
-} elseif ![string match "" $lines] then {
- fail "conpr-2a.o"
-} else {
- dg-runtest "$srcdir/$subdir/conpr-2.C" "conpr-2a.o" ""
- file delete conpr-2a.o
-}
-dg-finish
-
+# Main loop.
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.C]] "" ""
-###########
-# conpr-3.C
-###########
-
-dg-init
-
-set lines [g++_target_compile "$srcdir/$subdir/conpr-3a.C" "conpr-3a.o" object ""]
-if [string match "*init_priority*" $lines] then {
- xfail "conpr-3a.o"
-} elseif ![string match "" $lines] then {
- fail "conpr-3a.o"
-} else {
- set lines [g++_target_compile "$srcdir/$subdir/conpr-3b.C" "conpr-3b.o" object ""]
- if ![string match "" $lines] then {
- fail "conpr-3b.o"
- } else {
- # run it with objects both ways around!
- # This doesn't work on solaris2 for reasons described in PR 6482.
- if { ![regexp ".*-solaris2.*" $target_triplet] } {
- dg-runtest "$srcdir/$subdir/conpr-3.C" "conpr-3a.o conpr-3b.o" ""
- dg-runtest "$srcdir/$subdir/conpr-3.C" "conpr-3b.o conpr-3a.o" ""
- }
- file delete conpr-3a.o conpr-3b.o
- }
-}
-dg-finish
-
-###########
-# initp1.C
-###########
-
-dg-init
-set lines [g++_target_compile "$srcdir/$subdir/initp1.C" "$objdir/initp1.exe" executable ""]
-if [string match "*init_priority*" $lines] then {
- xfail "initp1.C"
- file delete $objdir/initp1.exe
-} elseif ![string match "" $lines] then {
- fail "initp1.C"
-} else {
- dg-runtest "$srcdir/$subdir/initp1.C" "" ""
- file delete $objdir/initp1.exe
-}
+# All done.
dg-finish
-
-### EOF ecos.exp
diff --git a/gcc/testsuite/lib/g++.exp b/gcc/testsuite/lib/g++.exp
index 63808f8..68b4d16 100644
--- a/gcc/testsuite/lib/g++.exp
+++ b/gcc/testsuite/lib/g++.exp
@@ -313,7 +313,7 @@ proc g++_target_compile { source dest type options } {
if [is_remote host] {
lappend options "additional_flags=$additional_sources"
}
- regsub -all " " $additional_sources " [file dirname $source]/" additional_sources
+ regsub -all "^| " $additional_sources " [file dirname $source]/" additional_sources
if ![is_remote host] {
lappend options "additional_flags=$additional_sources"
}