# Define gas callbacks for dg.exp. load_lib dg.exp # The use of this function is still in a bit of flux. # It should be theoretically possible to assemble, link, and run a file # but we currently don't support that. Assembler testcases aren't usually # that elaborate anyway. :-) proc gas-dg-test { prog do_what tool_flags } { # FIXME: the gas testsuite doesn't define tmpdir. Use outdir? set output_file "./a.out" switch $do_what { "preprocess" { } "assemble" { } "link" { } "run" { # This is the only place where we care if an executable was # created or not. If it was, dg.exp will try to run it. catch "exec rm -f $output_file" } default { perror "$do_what: not a valid dg-do keyword" return "" } } # gas_start prepends $srcdir/$subdir so we must remove it from PROG # if present. First remove extraneous //'s. global srcdir subdir set dir "$srcdir/$subdir" regsub -all "//" $dir "/" dir regsub -all "//" $prog "/" prog if [string match "$dir/*" $prog] { regsub "$dir" $prog "" prog } # FIXME: This should be gas_start but it doesn't set comp_output. return [gas_run $prog $tool_flags ""] } proc gas-dg-prune { system text } { #send_user "Before:$text\n" regsub -all "(^|\n)\[^\n\]*: Assembler messages:\[^\n\]*" $text "" text regsub -all "(^|\n)\[^\n\]*: End of file not at end\[^\n\]*Newline inserted." $text "" text #send_user "After:$text\n" return $text }