Hi, I have noticed that in the mips.exp dg-option handling code the isa and arch_test_option_p variables are not updated after the pre-arch to arch dependency handling. This means that if this code changes the architecture the post-arch dependency handling code (which relies on arch_test_option_p being true) is not run to handle any extra dependencies the new architecture might need.
I have found this issue while investigating failures with the mips-mti-elf toolchain using the -mnan=legacy multilib flags when running any of the mips tests that have the HAS_LSA option specified in the dg-options. The default architecture for this toolchain is mips32r2. This means the architecture handling code changes the architecture to mips32r6 to handle the HAS_LSA requirements. Unfortunately because the arch_test_option_p is not updated it is still set to false, so the post-arch code is not run. This means the nan encoding is not set to -mnan=2008 when then causes the tests to fail because mips32r6 does not support -mnan=legacy. The patch and ChangeLog are below. Ok to commit? Regards, Andrew testsuite/ * gcc.target/mips/mips.exp (mips-dg-options): Update the isa and arch_test_option_p variables after the arch dependency handling code. diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp index 1dd4173..1eb714d 100644 --- a/gcc/testsuite/gcc.target/mips/mips.exp +++ b/gcc/testsuite/gcc.target/mips/mips.exp @@ -1188,8 +1188,10 @@ proc mips-dg-options { args } { } # Re-calculate the isa_rev for use in the abi handling code below + set arch_test_option_p [mips_test_option_p options arch] set arch [mips_option options arch] set isa_rev [mips_arch_info $arch isa_rev] + set isa [mips_arch_info $arch isa] # Set an appropriate ABI, handling dependencies between the pre-abi # options and the abi options. This should mirror the abi and post-abi