sim/testsuite: Set global_cc_os also when no compiler is found
authorHans-Peter Nilsson <hp@axis.com>
Mon, 14 Feb 2022 22:50:29 +0000 (23:50 +0100)
committerHans-Peter Nilsson <hp@bitrange.com>
Mon, 14 Feb 2022 22:50:29 +0000 (23:50 +0100)
If we don't set this variable, it doesn't exist, and using "#progos:"
in an assembler-file will cause an error rather than just skipping the
test, viz:

Running /src/sim/testsuite/cris/hw/rv-n-cris/rvc.exp ...
ERROR: tcl error sourcing /src/sim/testsuite/cris/hw/rv-n-cris/rvc.exp.
ERROR: can't read "global_cc_os": no such variable
    while executing
"if { $opts(progos) != "" && $opts(progos) != $global_cc_os } {
untested $subdir/$name
return
    }"
    (procedure "run_sim_test" line 102)

Neither the commit introducing progos, nor the top comment
in run_sim_test, mentions progos as intended only for C
tests, or that its use must be gated on $global_cc_works !=
0, so (not) setting it in the no-working-compiler path seems
just overlooked.

Allowing it to be used for assembler tests makes it usable
for e.g. an always-false predicate and in expressions in
.exp files without gating on $global_cc_works != 0.

With this patch, global_cc_os is set to "", just as for "unknown OS".

    sim/testsuite:
* lib/sim-defs.exp (sim_init_toolchain): Set global_cc_os also when
no working target C compiler is found.

sim/testsuite/lib/sim-defs.exp

index 2cf739b3e32e6699dd95f8b42c63f762cd0ef184..3586fa550765bfae33c04f6ca5062757db9c6a8e 100644 (file)
@@ -142,6 +142,7 @@ proc sim_init_toolchain {} {
     } {
        verbose -log "Can't execute C compiler"
        set global_cc_works 0
+       set global_cc_os ""
     }
 
     file delete $objdir/compilercheck.x