# Run some tests of gas macros. proc run_list_test { name opts } { global srcdir subdir set testname "macros $name" set file $srcdir/$subdir/$name gas_run ${name}.s $opts ">&dump.out" if { [regexp_diff "dump.out" "${file}.l"] } then { fail $testname verbose "output is [file_contents "dump.out"]" 2 return } pass $testname } if { ![istarget hppa*-*-*] || [istarget *-*-linux*] } { run_dump_test test1 } if { ![istarget *c54x*-*-*] && ![istarget *c4x*-*-*] } { run_dump_test test2 } run_dump_test test3 if { ![istarget *c54x*-*-*] && ![istarget *c4x*-*-*] } { run_dump_test irp run_dump_test rept run_dump_test repeat } gas_test_error "err.s" "" "macro infinite recursion" # The tic4x-coff target fails the next test because it defines '&' # as its line separator character, so the expression "(0 & TFLAG_C)" # becomes divided up into two lines and the parser complains about # a missing closing parenthesis for the first line. setup_xfail "tic4x*-*" gas_test "and.s" "" "" "logical and in macro definition" case $target_triplet in { { hppa*-*-* } { if [istarget *-*-linux*] { run_dump_test semi } } { *c4x*-*-* } { } { *c54x*-*-* } { } default { run_dump_test semi } } if { ![istarget hppa*-*-*] || [istarget *-*-linux*] } { # FIXME: Due to macro mishandling of ONLY_STANDARD_ESCAPES. setup_xfail "avr-*" "cris-*" "crisv32-*" "msp430-*" # These fail due to NO_STRING_ESCAPES setup_xfail "powerpc*-*-aix*" "powerpc*-*-beos*" "powerpc*-*-macos*" setup_xfail "powerpc*-*-pe" "powerpc*-*-*win*" setup_xfail "rs6000-*-*" # FIXME: Due to difference in what "consecutive octets" means. setup_xfail "*c4x*-*-*" "*c54x*-*" run_dump_test strings } run_dump_test app1 run_dump_test app2 run_dump_test app3 run_dump_test app4 run_list_test badarg "" run_list_test end "" run_list_test redef ""