From 4179a4142c174197fcf6340fd97e239344f864a3 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Sat, 13 Aug 2005 21:16:04 +0000 Subject: [PATCH] part of PR testsuite/23348 2005-08-13 Andrew Pinski 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. From-SVN: r103061 --- gcc/testsuite/ChangeLog | 7 +++++ gcc/testsuite/lib/objc-torture.exp | 47 +++++++++++++++++++++------- gcc/testsuite/objc/compile/trivial.m | 6 ++++ 3 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 gcc/testsuite/objc/compile/trivial.m diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c54ba51d97c..f98e1371224 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2005-08-13 Andrew Pinski + + 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 * gfortran.dg/eoshift.f90: Correct format. diff --git a/gcc/testsuite/lib/objc-torture.exp b/gcc/testsuite/lib/objc-torture.exp index 4f7826a513d..09d0c7761ff 100644 --- a/gcc/testsuite/lib/objc-torture.exp +++ b/gcc/testsuite/lib/objc-torture.exp @@ -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 index 00000000000..c2560658ea4 --- /dev/null +++ b/gcc/testsuite/objc/compile/trivial.m @@ -0,0 +1,6 @@ +#import + +int main(void) +{ + [Object class]; +}