OSDN Git Service

* lib/g++.exp: Tweak handling of additional source files.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 May 2003 15:24:31 +0000 (15:24 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 May 2003 15:24:31 +0000 (15:24 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66721 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/g++.dg/special/conpr-2.C
gcc/testsuite/g++.dg/special/conpr-2a.cc [moved from gcc/testsuite/g++.dg/special/conpr-2a.C with 100% similarity]
gcc/testsuite/g++.dg/special/conpr-3.C
gcc/testsuite/g++.dg/special/conpr-3a.cc [moved from gcc/testsuite/g++.dg/special/conpr-3a.C with 100% similarity]
gcc/testsuite/g++.dg/special/conpr-3b.cc [moved from gcc/testsuite/g++.dg/special/conpr-3b.C with 100% similarity]
gcc/testsuite/g++.dg/special/conpr-4.C [new file with mode: 0644]
gcc/testsuite/g++.dg/special/ecos.exp
gcc/testsuite/lib/g++.exp

index 2deeb01..9c482b9 100644 (file)
@@ -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>
 
index c5fc235..3fe5741 100644 (file)
@@ -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-4.C b/gcc/testsuite/g++.dg/special/conpr-4.C
new file mode 100644 (file)
index 0000000..68ac543
--- /dev/null
@@ -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);
+}
index 0a9eff9..dc34ff8 100644 (file)
@@ -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
 # 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
index 63808f8..68b4d16 100644 (file)
@@ -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"
        }