| # 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 |
| } |