From patchwork Tue Jul 13 15:25:41 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [testsuite,objc] committed fix testsuite aspect of PR44488 Date: Tue, 13 Jul 2010 05:25:41 -0000 From: IainS X-Patchwork-Id: 58791 Message-Id: To: GCC Patches Cc: mrs@gcc.gnu.org committed, under mike's pre-appr. of objc testsuite fixes. tested on {powerpc,i686}-apple-darwin9, x86_64-apple-darwin10, x86_64- unknown-linux-gnu, cris-elf (sim), mipsia64(sim). will let it settle for a few days, and then apply to 4.5 r162144 Iain PR objc/44488 * lib/objc-torture.exp (objc-set-runtime-options): Base runtime list on the target. Make sure that we can assemble the emitted asm when the test type is 'compile'. + lappend rtlist $other + } } set OBJC_RUNTIME_OPTIONS "" @@ -49,8 +56,10 @@ proc objc-set-runtime-options { dowhat args } { if [info exists dowhat] { switch $dowhat { "compile" { - set compile_type "assembly" - set output_file "trivial.s" + # We should check that the generated asm is sensible, so do + # the equivalent of -c. + set compile_type "object" + set output_file "trivial.o" set comp_output [objc_target_compile \ "$srcdir/$subdir/trivial.m" "$output_file" "$compile_type" $options] Index: gcc/testsuite/lib/objc-torture.exp =================================================================== --- gcc/testsuite/lib/objc-torture.exp (revision 162143) +++ gcc/testsuite/lib/objc-torture.exp (working copy) @@ -23,17 +23,24 @@ load_lib target-supports.exp # Make sure that the runtime list is re-evaluated for each multilib. proc objc-set-runtime-options { dowhat args } { global OBJC_RUNTIME_OPTIONS - if ![info exists OBJC_RUNTIME_OPTIONS] { - set rtlist [list "-fgnu-runtime" "-fnext-runtime" ] - } else { - set rtlist [list "-fgnu-runtime" "-fnext-runtime" ] - foreach other $OBJC_RUNTIME_OPTIONS { - # Don't do tests twice... - if { ( $other == "-fnext-runtime" || $other == "-fgnu- runtime" ) } { - continue - } - lappend rtlist $other + set rtlist [list "-fgnu-runtime" ] + # At present (4.6), the only NeXT runtime target is Darwin. + # The previously used approach of testing trivial compiles is not reliable + # for determining the absence of the NeXT runtime, since a non- Darwin + # installation can have the objc headers present in the same locations + # that Darwin uses. If NeXT is ported to another target, then it should + # be listed here. + if [istarget "*-*-darwin*" ] { + lappend rtlist "-fnext-runtime" + } + if [info exists OBJC_RUNTIME_OPTIONS] { + foreach other $OBJC_RUNTIME_OPTIONS { + # Don't do tests twice... + if { ( $other == "-fnext-runtime" || $other == "-fgnu-runtime" ) } { + continue }