OSDN Git Service

2004-07-09 Frank Ch. Eigler <fche@redhat.com>
authorfche <fche@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Jul 2004 19:51:51 +0000 (19:51 +0000)
committerfche <fche@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Jul 2004 19:51:51 +0000 (19:51 +0000)
Test case for g++/15861
* testsuite/libmudflap.c++/ctors-[12].cxx: New test case halves.
* testsuite/libmudflap.c++/ctors.exp: Driver.
* testsuite/libmudflap.c++/c++frags.exp: Elide redundant default.
Look only for *frag* test cases.

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

libmudflap/ChangeLog
libmudflap/testsuite/libmudflap.c++/c++frags.exp
libmudflap/testsuite/libmudflap.c++/ctors-1.cxx [new file with mode: 0644]
libmudflap/testsuite/libmudflap.c++/ctors-2.cxx [new file with mode: 0644]
libmudflap/testsuite/libmudflap.c++/ctors.exp [new file with mode: 0644]

index 04ce472..804359a 100644 (file)
@@ -1,3 +1,11 @@
+2004-07-09  Frank Ch. Eigler  <fche@redhat.com>
+
+       Test case for g++/15861
+       * testsuite/libmudflap.c++/ctors-[12].cxx: New test case halves.
+       * testsuite/libmudflap.c++/ctors.exp: Driver.
+       * testsuite/libmudflap.c++/c++frags.exp: Elide redundant default.
+       Look only for *frag* test cases.
+
 2004-07-08  Frank Ch. Eigler  <fche@redhat.com>
 
        ANSI C conversion, libmudflap specialization, recursion limiting.
index 43da3bd..5eb69aa 100644 (file)
@@ -6,9 +6,9 @@ dg-init
 global srcdir
 
 foreach flags [list {} {-static} {-O2} {-O3}] {
-    foreach srcfile [lsort [glob -nocomplain ${srcdir}/libmudflap.c++/*.cxx]] {
+    foreach srcfile [lsort [glob -nocomplain ${srcdir}/libmudflap.c++/*frag.cxx]] {
        set bsrc [file tail $srcfile]
-       setenv MUDFLAP_OPTIONS "-no-heur-proc-map -viol-segv"
+       setenv MUDFLAP_OPTIONS "-viol-segv"
        dg-runtest $srcfile $flags "-fmudflap -lmudflap"
     }
 }
diff --git a/libmudflap/testsuite/libmudflap.c++/ctors-1.cxx b/libmudflap/testsuite/libmudflap.c++/ctors-1.cxx
new file mode 100644 (file)
index 0000000..7717c80
--- /dev/null
@@ -0,0 +1,20 @@
+#include <iostream>
+
+
+extern char k [];
+
+class foo
+{
+ public:
+  foo (char *m) { m [40] = 20; }
+};
+
+
+foo f1 (k);
+foo f2 (k);
+foo f3 (k);
+
+int main ()
+{
+  return 0;
+}
diff --git a/libmudflap/testsuite/libmudflap.c++/ctors-2.cxx b/libmudflap/testsuite/libmudflap.c++/ctors-2.cxx
new file mode 100644 (file)
index 0000000..c1a5019
--- /dev/null
@@ -0,0 +1 @@
+char k [500];
diff --git a/libmudflap/testsuite/libmudflap.c++/ctors.exp b/libmudflap/testsuite/libmudflap.c++/ctors.exp
new file mode 100644 (file)
index 0000000..a160bc9
--- /dev/null
@@ -0,0 +1,42 @@
+
+libmudflap-init c++
+
+dg-init
+
+global srcdir subdir
+
+foreach flags [list {} {-static} {-O2} {-O3}] {
+    set l1 [libmudflap_target_compile "$srcdir/$subdir/ctors-1.cxx" "ctors-1.o" object {additional_flags=-fmudflap}]
+    set test "ctors-1 compilation ${flags}"
+    if [string match "*mudflap cannot track lifetime of*k*" $l1] { pass $test } { fail $test }
+
+    set l2 [libmudflap_target_compile "$srcdir/$subdir/ctors-2.cxx" "ctors-2.o" object {additional_flags=-fmudflap}]
+    set test "ctors-2 compilation ${flags}"
+    if [string match "" $l2]  { pass $test } { fail $test }
+
+    set l3 [libmudflap_target_compile "ctors-1.o ctors-2.o" "ctors-12.exe" executable {additional_flags=-fmudflap additional_flags=-lmudflap additional_flags=-lstdc++}]
+    set test "ctors-12 linkage ${flags}"
+    if [string match "" $l3]  { pass $test } { fail $test }
+
+    set l4 [libmudflap_target_compile "ctors-2.o ctors-1.o" "ctors-21.exe" executable {additional_flags=-fmudflap additional_flags=-lmudflap additional_flags=-lstdc++}]
+    set test "ctors-21 linkage ${flags}"
+    if [string match "" $l3]  { pass $test } { fail $test }
+
+    setenv MUDFLAP_OPTIONS "-viol-segv"
+
+    remote_spawn host "./ctors-12.exe"
+    set l5 [remote_wait host 10]
+    set test "ctors-12 execution ${flags}"
+    if {[lindex $l5 0] == 0}  { pass $test } { fail $test }
+
+    remote_spawn host "./ctors-21.exe"
+    set l6 [remote_wait host 10]
+    set test "ctors-21 execution ${flags}"
+    if {[lindex $l6 0] == 0}  { pass $test } { fail $test }
+
+    foreach f [glob -nocomplain "ctors-*"] {
+       remote_file build delete $f
+    }
+}
+
+dg-finish