From: Richard Bunt Date: Mon, 12 Jun 2023 08:27:14 +0000 (+0100) Subject: gdb/testsuite: Testing with the armflang compiler X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2e3aff27623b20b08ac58f8eaf73e97e58b4e67c;p=binutils-gdb.git gdb/testsuite: Testing with the armflang compiler Currently the Fortran test suite does not run with armflang because the compiler detection fails. This in turn means fortran_runto_main does not know which main method to use to start a test case. Fortran compiler detection was added in 44d469c5f85; however, the commit message notes that it was not tested with armflang. This commit tests and fixes up a minor issue to get the detection working. The goal here is to get the tests running and preventing further regressions during future work. This change does not do anything to fix existing failures. >From what I can understand, the auto detection leverages the preprocessor to extract the Fortran compiler identity from the defines. This preprocessor output is then evaluated by the test suite to import these defines. In the case of armflang, this evaluation step is disrupted by the presence of the following warning: $ armflang -E -fdiagnostics-color=never testsuite/lib/compiler.F90 -o compiler.exp $ clang-13: warning: argument unused during compilation: '-fdiagnostics-color=never' [-Wunused-command-line-argument] The evaluation logic is already set up to filter this warning, but the prefix differs. This commit fixes the issue by updating the filter to exclude the armflang flavour of warning. gdb.fortran regression tests run with GNU, Intel and Intel LLVM. No regressions detected. The gdb.fortran test results with ACfL 23.04.1 are as follows. Before: # of expected passes 560 # of unexpected failures 113 # of unresolved testcases 2 # of untested testcases 5 # of duplicate test names 2 After: # of expected passes 5388 # of unexpected failures 628 # of known failures 10 # of untested testcases 8 # of unsupported tests 5 # of duplicate test names 5 As can be seen from the above, there are now considerably more passing assertions. Reviewed-By: Luis Machado Approved-By: Tom Tromey --- diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 3cdd73b7da3..c3e5d4891dc 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -4531,10 +4531,13 @@ proc get_compiler_info {{language "c"}} { # eval this line verbose "get_compiler_info: $cppline" 2 eval "$cppline" - } elseif { [ regexp "flang.*warning.*'-fdiagnostics-color=never'" "$cppline"] } { + } elseif { [ regexp {[fc]lang.*warning.*'-fdiagnostics-color=never'} "$cppline"] } { # Both flang preprocessors (llvm flang and classic flang) print a # warning for the unused -fdiagnostics-color=never, so we skip this # output line here. + # The armflang preprocessor has been observed to output the + # warning prefixed with "clang", so the regex also accepts + # this. } else { # unknown line verbose -log "get_compiler_info: $cppline"