blob: 6e066c6e8c99559a753049839faabb0fd8612103 [file] [log] [blame]
# This checks if -fdump-noaddr dumps are done consistently.
proc dump_compare { src options } {
global srcdir subdir
global tmpdir
exec echo $src
global torture_with_loops
set option_list $torture_with_loops
set dumpbase dump-noaddr
# ??? passing -dumpbase to the gcc driver doesn't work, since it will pass
# another -dumpbase option to override it.
# loop through all the options
foreach option $option_list {
# c-torture-compile ${dumpbase}_1 "$option $options -DMASK=1 -x c -da -fdump-tree-all"
# c-torture-compile ${dumpbase}_2 "$option $options -DMASK=2 -x c -da -fdump-tree-all"
# c-torture-compile ${dumpbase}_3 "$option $options -DMASK=3 -x c -da -fdump-tree-all"
file delete -force dump1
file delete -force dump2
file mkdir dump1
file mkdir dump2
cd dump1
c-torture-compile $src "$option $options -DMASK=1 -x c --param ggc-min-heapsize=1 -da -fdump-tree-all -fdump-noaddr"
cd ../dump2
c-torture-compile $src "$option $options -DMASK=2 -x c -da -fdump-tree-all -fdump-noaddr"
cd ..
foreach dump1 [lsort [glob -nocomplain dump1/*]] {
regsub dump1/ $dump1 dump2/ dump2
set dumptail "gcc.c-torture/unsorted/[file tail $dump1]"
#puts "$option $dump1"
set tmp [ diff "$dump1" "$dump2" ]
if { $tmp == 0 } {
untested "$dumptail, $option comparison"
} elseif { $tmp == 1 } {
pass "$dumptail, $option comparison"
} else {
fail "$dumptail, $option comparison"
}
#exec diff $dump1 $dump2
}
}
file delete -force dump1
file delete -force dump2
}
catch {dump_compare $src $options} result
puts $result
verbose result
return 1