diff --git a/gcc/testsuite/g++.dg/guality/guality.exp b/gcc/testsuite/g++.dg/guality/guality.exp index 2d736d292e9..cd56b06f2f0 100644 --- a/gcc/testsuite/g++.dg/guality/guality.exp +++ b/gcc/testsuite/g++.dg/guality/guality.exp @@ -37,6 +37,7 @@ proc check_guality {args} { } dg-init +torture-init global GDB if ![info exists ::env(GUALITY_GDB_NAME)] { @@ -54,7 +55,6 @@ report_gdb $::env(GUALITY_GDB_NAME) [info script] global DG_TORTURE_OPTIONS LTO_TORTURE_OPTIONS set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS] -torture-init set-torture-options \ $guality_dg_torture_options \ [list {}] \ diff --git a/gcc/testsuite/gcc.dg/guality/guality.exp b/gcc/testsuite/gcc.dg/guality/guality.exp index 075bebe34e8..a8f2921d888 100644 --- a/gcc/testsuite/gcc.dg/guality/guality.exp +++ b/gcc/testsuite/gcc.dg/guality/guality.exp @@ -37,6 +37,7 @@ proc check_guality {args} { } dg-init +torture-init global GDB if ![info exists ::env(GUALITY_GDB_NAME)] { @@ -69,7 +70,6 @@ global DG_TORTURE_OPTIONS set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS] set guality_dg_torture_options [guality_transform_options $guality_dg_torture_options] set guality_lto_torture_options [guality_transform_options $LTO_TORTURE_OPTIONS] -torture-init set-torture-options \ $guality_dg_torture_options \ [list {}] \ diff --git a/gcc/testsuite/gfortran.dg/guality/guality.exp b/gcc/testsuite/gfortran.dg/guality/guality.exp index 86a966a9133..610449523f0 100644 --- a/gcc/testsuite/gfortran.dg/guality/guality.exp +++ b/gcc/testsuite/gfortran.dg/guality/guality.exp @@ -18,6 +18,7 @@ if { [istarget "powerpc-ibm-aix*"] } { } dg-init +torture-init global GDB if ![info exists ::env(GUALITY_GDB_NAME)] { @@ -35,7 +36,6 @@ report_gdb $::env(GUALITY_GDB_NAME) [info script] global DG_TORTURE_OPTIONS set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS] -torture-init set-torture-options \ $guality_dg_torture_options \ diff --git a/gcc/testsuite/lib/c-torture.exp b/gcc/testsuite/lib/c-torture.exp index e54437d5f87..f62c6e9fe6c 100644 --- a/gcc/testsuite/lib/c-torture.exp +++ b/gcc/testsuite/lib/c-torture.exp @@ -38,7 +38,6 @@ if { $orig_environment_saved == 0 } { # The default option list can be overridden by # TORTURE_OPTIONS="{ list1 } ... { listN }" -set LTO_TORTURE_OPTIONS "" if [info exists TORTURE_OPTIONS] { set C_TORTURE_OPTIONS $TORTURE_OPTIONS } else { @@ -57,22 +56,6 @@ if [info exists TORTURE_OPTIONS] { { -O3 -g } \ { -Os } \ { -Og -g } ] - - if [check_effective_target_lto] { - # When having plugin test both slim and fat LTO and plugin/nonplugin - # path. - if [check_linker_plugin_available] { - set LTO_TORTURE_OPTIONS [list \ - { -O2 -flto -fno-use-linker-plugin -flto-partition=none } \ - { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects } - ] - } else { - set LTO_TORTURE_OPTIONS [list \ - { -O2 -flto -flto-partition=none } \ - { -O2 -flto } - ] - } - } } if [info exists ADDITIONAL_TORTURE_OPTIONS] { diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index 9d79b9402e9..693cbdd7511 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -73,7 +73,6 @@ if { $orig_environment_saved == 0 } { global gcc_force_conventional_output set gcc_force_conventional_output "" -set LTO_TORTURE_OPTIONS "" if [info exists TORTURE_OPTIONS] { set DG_TORTURE_OPTIONS $TORTURE_OPTIONS } else { @@ -93,19 +92,6 @@ if [info exists TORTURE_OPTIONS] { { -Os } ] if [check_effective_target_lto] { - # When having plugin test both slim and fat LTO and plugin/nonplugin - # path. - if [check_linker_plugin_available] { - set LTO_TORTURE_OPTIONS [list \ - { -O2 -flto -fno-use-linker-plugin -flto-partition=none } \ - { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects } - ] - } else { - set LTO_TORTURE_OPTIONS [list \ - { -O2 -flto -flto-partition=none } \ - { -O2 -flto } - ] - } set gcc_force_conventional_output "-ffat-lto-objects" } } diff --git a/gcc/testsuite/lib/lto.exp b/gcc/testsuite/lib/lto.exp index 9e44c443bdb..c95e7d0a505 100644 --- a/gcc/testsuite/lib/lto.exp +++ b/gcc/testsuite/lib/lto.exp @@ -215,6 +215,11 @@ proc lto_init { args } { {-O2 -flto} \ ] } + global lto_init_set_LTO_OPTIONS + if [info exists lto_init_set_LTO_OPTIONS] { + error "lto_init_set_LTO_OPTIONS already set" + } + set lto_init_set_LTO_OPTIONS 1 } } @@ -233,6 +238,14 @@ proc lto_finish { } { } elseif [board_info $dest exists mathlib] { unset board_info($dest,mathlib) } + + # Let the next 'lto_init' redetermine the default 'LTO_OPTIONS'. + global lto_init_set_LTO_OPTIONS + if [info exists lto_init_set_LTO_OPTIONS] { + global LTO_OPTIONS + unset LTO_OPTIONS + unset lto_init_set_LTO_OPTIONS + } } # Subsets of tests can be selectively disabled by members of this list: diff --git a/gcc/testsuite/lib/torture-options.exp b/gcc/testsuite/lib/torture-options.exp index 61295604b5b..394418e9a02 100644 --- a/gcc/testsuite/lib/torture-options.exp +++ b/gcc/testsuite/lib/torture-options.exp @@ -28,6 +28,27 @@ proc torture-init { args } { if [info exists torture_with_loops] { error "torture-init: torture_with_loops is not empty as expected" } + + global LTO_TORTURE_OPTIONS + if [info exists LTO_TORTURE_OPTIONS] { + error "torture-init: LTO_TORTURE_OPTIONS is not empty as expected" + } + set LTO_TORTURE_OPTIONS "" + if [check_effective_target_lto] { + # When having plugin test both slim and fat LTO and plugin/nonplugin + # path. + if [check_linker_plugin_available] { + set LTO_TORTURE_OPTIONS [list \ + { -O2 -flto -fno-use-linker-plugin -flto-partition=none } \ + { -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects } + ] + } else { + set LTO_TORTURE_OPTIONS [list \ + { -O2 -flto -flto-partition=none } \ + { -O2 -flto } + ] + } + } } # Return 1 if torture options have already been set, 0 otherwise. @@ -100,6 +121,13 @@ proc torture-finish { args } { } else { error "torture-finish: torture_with_loops is not defined" } + + global LTO_TORTURE_OPTIONS + if [info exists LTO_TORTURE_OPTIONS] { + unset LTO_TORTURE_OPTIONS + } else { + error "torture-finish: LTO_TORTURE_OPTIONS is not defined" + } } # Useful for debugging .exp files.