testsuite: Use feature test rather than enumeration for complex

This commit is contained in:
Richard Henderson
2014-11-14 10:50:29 +01:00
parent b5ade2fb5d
commit f1301a54bb
2 changed files with 19 additions and 9 deletions

View File

@@ -223,6 +223,24 @@ proc libffi_target_compile { source dest type options } {
return [target_compile $source $dest $type $options]
}
# TEST should be a preprocessor condition. Returns true if it holds.
proc libffi_feature_test { test } {
set src "ffitest.c"
set f [open $src "w"]
puts $f "#include <ffi.h>"
puts $f $test
puts $f "xyzzy"
puts $f "#endif"
close $f
set lines [libffi_target_compile $src "" "preprocess" ""]
file delete $src
set last [lindex $lines end]
return [regexp -- "xyzzy" $last]
}
# Utility routines.
#

View File

@@ -24,15 +24,7 @@ set ctlist [lsearch -inline -all -glob [lsort [glob -nocomplain -- $srcdir/$subd
run-many-tests $tlist ""
# ??? We really should preprocess ffi.h and grep
# for FFI_TARGET_HAS_COMPLEX_TYPE.
if { [istarget aarch64*]
|| [istarget alpha*]
|| [istarget arm*]
|| [istarget i?86*]
|| [istarget s390*]
|| [istarget sparc*]
|| [istarget x86_64*] } {
if { [libffi_feature_test "#ifdef FFI_TARGET_HAS_COMPLEX_TYPE"] } {
run-many-tests $ctlist ""
} else {
foreach test $ctlist {