OSDN Git Service

2005-08-13 Andrew Pinski <pinskia@physics.uc.edu>
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 13 Aug 2005 21:16:04 +0000 (21:16 +0000)
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 13 Aug 2005 21:16:04 +0000 (21:16 +0000)
        part of PR testsuite/23348
        * lib/objc-torture.exp: Add -fgnu-runtime and/or -fnext-runtime to each
        of the torture options.
        * objc/compile/trivial.m: New test.

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

gcc/testsuite/ChangeLog
gcc/testsuite/lib/objc-torture.exp
gcc/testsuite/objc/compile/trivial.m [new file with mode: 0644]

index c54ba51..f98e137 100644 (file)
@@ -1,3 +1,10 @@
+2005-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       part of PR testsuite/23348
+       * lib/objc-torture.exp: Add -fgnu-runtime and/or -fnext-runtime to each
+       of the torture options.
+       * objc/compile/trivial.m: New test.
+
 2005-08-12  Thomas Koenig  <Thomas.Koenig@online.de>
 
        * gfortran.dg/eoshift.f90:  Correct format.
index 4f7826a..09d0c77 100644 (file)
@@ -21,6 +21,24 @@ load_lib file-format.exp
 # The default option list can be overridden by
 # TORTURE_OPTIONS="{ { list1 } ... { listN } }"
 
+if ![info exists OBJC_RUNTIME_OPTIONS] {
+  set OBJC_RUNTIME_OPTIONS ""
+  foreach type {-fgnu-runtime -fnext-runtime} {
+    global srcdir subdir
+
+    set comp_output [objc_target_compile \
+    "$srcdir/$subdir/trivial.m" "trivial.exe" executable "additional_flags=$type"]
+
+    # If we get any error, then we failed
+    if ![string match "" $comp_output] then {
+      continue;
+    }
+    lappend OBJC_RUNTIME_OPTIONS $type
+  }
+}
+verbose -log "Using the following runtimes: $OBJC_RUNTIME_OPTIONS"
+
+
 if ![info exists TORTURE_OPTIONS] {
     # It is theoretically beneficial to group all of the O2/O3 options together,
     # as in many cases the compiler will generate identical executables for
@@ -30,28 +48,33 @@ if ![info exists TORTURE_OPTIONS] {
     # items below, even though -O3 is also specified, because some ports may
     # choose to disable inlining functions by default, even when optimizing.
     set TORTURE_OPTIONS [list \
-       { -O0 } \
-       { -O1 } \
-       { -O2 } \
-       { -O3 -fomit-frame-pointer } \
-       { -O3 -fomit-frame-pointer -funroll-loops } \
-       { -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions } \
-       { -O3 -g } \
-       { -Os } ]
+       " -O0 " \
+       " -O1 " \
+       " -O2 " \
+       " -O3 -fomit-frame-pointer " \
+       " -O3 -fomit-frame-pointer -funroll-loops " \
+       " -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions " \
+       " -O3 -g " \
+       " -Os " ]
 }
 
 
 # Split TORTURE_OPTIONS into two choices: one for testcases with loops and
-# one for testcases without loops.
+# one for testcases without loops. Add in the objc runtime options also.
 
-set torture_with_loops $TORTURE_OPTIONS
+set torture_with_loops ""
 set torture_without_loops ""
-foreach option $TORTURE_OPTIONS {
+foreach objc_option $OBJC_RUNTIME_OPTIONS {
+  foreach option $TORTURE_OPTIONS {
+  
     if ![string match "*loop*" $option] {
-       lappend torture_without_loops $option
+       lappend torture_without_loops "$option $objc_option"
     }
+    lappend torture_with_loops "$option $objc_option"
+  }
 }
 
+
 #
 # objc-torture-compile -- runs the Tege OBJC-torture test
 #
diff --git a/gcc/testsuite/objc/compile/trivial.m b/gcc/testsuite/objc/compile/trivial.m
new file mode 100644 (file)
index 0000000..c256065
--- /dev/null
@@ -0,0 +1,6 @@
+#import <objc/Object.h>
+
+int main(void)
+{
+  [Object class];
+}