OSDN Git Service

* lib/target-supports-dg.exp (dg-require-cxa-atexit): New.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / lib / g++-dg.exp
index ebf909b..d8b3886 100644 (file)
@@ -1,4 +1,4 @@
-#   Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
+#   Copyright (C) 1997, 1999, 2000, 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
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
 
 # Define g++ callbacks for dg.exp.
 
-load_lib dg.exp
-load_lib file-format.exp
-load_lib target-supports.exp
-load_lib scanasm.exp
+load_lib gcc-dg.exp
 
 proc g++-dg-test { prog do_what extra_tool_flags } {
-    # Set up the compiler flags, based on what we're going to do.
-
-    switch $do_what {
-       "preprocess" {
-           set compile_type "preprocess"
-           set output_file "[file rootname [file tail $prog]].i"
-       }
-       "compile" {
-           set compile_type "assembly"
-           set output_file "[file rootname [file tail $prog]].s"
-       }
-       "assemble" {
-           set compile_type "object"
-           set output_file "[file rootname [file tail $prog]].o"
-       }
-       "precompile" {
-           set compile_type "precompiled_header"
-           set output_file "[file tail $prog].gch"
-       }
-       "link" {
-           set compile_type "executable"
-           set output_file "[file rootname [file tail $prog]].exe"
-           # The following line is needed for targets like the i960 where
-           # the default output file is b.out.  Sigh.
-       }
-       "run" {
-           set compile_type "executable"
-           # FIXME: "./" is to cope with "." not being in $PATH.
-           # Should this be handled elsewhere?
-           # YES.
-           set output_file "./[file rootname [file tail $prog]].exe"
-           # This is the only place where we care if an executable was
-           # created or not.  If it was, dg.exp will try to run it.
-           remote_file build delete $output_file;
-       }
-       default {
-           perror "$do_what: not a valid dg-do keyword"
-           return ""
-       }
-    }
-    set options ""
-    if { $extra_tool_flags != "" } {
-       lappend options "additional_flags=$extra_tool_flags"
-    }
-
-    set comp_output [g++_target_compile "$prog" "$output_file" "$compile_type" $options];
-
-    return [list $comp_output $output_file]
+    return [gcc-dg-test-1 g++_target_compile $prog $do_what $extra_tool_flags]
 }
 
 
 proc g++-dg-prune { system text } {
-    set text [prune_gcc_output $text]
-
-    # If we see "region xxx is full" then the testcase is too big for ram.
-    # This is tricky to deal with in a large testsuite like c-torture so
-    # deal with it here.  Just mark the testcase as unsupported.
-    if [regexp "(^|\n)\[^\n\]*: region \[^\n\]* is full" $text] {
-       # The format here is important.  See dg.exp.
-       return "::unsupported::memory full"
-    }
-
-    return $text
+    return [gcc-dg-prune $system $text]
 }