diff options
author | Thomas Schwinge <tschwinge@baylibre.com> | 2025-02-21 19:42:28 +0100 |
---|---|---|
committer | Thomas Schwinge <tschwinge@baylibre.com> | 2025-02-22 22:37:50 +0100 |
commit | f553b1aaa2b1b925c918e5dcf966290b045321c2 (patch) | |
tree | cadee0bf0414577ddd149c9b0de3aed05c245182 /gcc | |
parent | 2abc942fd486be217de1ba0282a3dc8e21d599aa (diff) | |
download | gcc-f553b1aaa2b1b925c918e5dcf966290b045321c2.zip gcc-f553b1aaa2b1b925c918e5dcf966290b045321c2.tar.gz gcc-f553b1aaa2b1b925c918e5dcf966290b045321c2.tar.bz2 |
Refactor duplicated code into 'gcc/testsuite/lib/gcc-dg.exp:find-dg-do-what'
No change in behavior intended.
gcc/testsuite/
* lib/gcc-dg.exp (proc find-dg-do-what): New.
* lib/target-supports.exp (check_effective_target_stack_size)
(check_effective_target_alloca): Use it.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/lib/gcc-dg.exp | 16 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 20 |
2 files changed, 18 insertions, 18 deletions
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index 70be7a8..6e9a7b2 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -1369,3 +1369,19 @@ proc gcc-transform-out-of-tree { args } { set additional_prunes "" set dg_runtest_extra_prunes "" + +# Find the 'dg-do-what' variable living inside DejaGnu's 'dg-test' procedure, +# as a local variable. We start looking at the second-outer frame: this way, +# the caller of 'find-dg-do-what' may maintain a local 'dg-do-what' variable +# without interfering with this search. +proc find-dg-do-what { } { + set lookup_level 2 + while true { + upvar $lookup_level dg-do-what dg-do-what + if { [info exists dg-do-what] } { + verbose "find-dg-do-what: found 'dg-do-what' at level $lookup_level: ${dg-do-what}" 2 + return ${dg-do-what} + } + incr lookup_level + } +} diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 7eab76a..7b3172d 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -652,15 +652,7 @@ proc check_effective_target_trampolines { } { proc check_effective_target_stack_size { } { # For nvptx target, stack size limits are relevant for execution only. if { [istarget nvptx-*-*] } { - # Find 'dg-do-what' in an outer frame. - set level 1 - while true { - upvar $level dg-do-what dg-do-what - if [info exists dg-do-what] then break - incr level - } - verbose "check_effective_target_stack_size: found dg-do-what at level $level" 2 - + set dg-do-what [find-dg-do-what] if { ![string equal [lindex ${dg-do-what} 0] run] } { return 0 } @@ -1021,15 +1013,7 @@ proc check_effective_target_alloca {} { return 0 } - # Find 'dg-do-what' in an outer frame. - set level 1 - while true { - upvar $level dg-do-what dg-do-what - if [info exists dg-do-what] then break - incr level - } - verbose "check_effective_target_alloca: found dg-do-what at level $level" 2 - + set dg-do-what [find-dg-do-what] if { [string equal [lindex ${dg-do-what} 0] run] } { # For 'dg-do run', it additionally depends on runtime support. # (If not supported, we don't try to demote 'run' to 'link', |