gdb/testsuite: Testing with the armflang compiler
authorRichard Bunt <richard.bunt@linaro.org>
Mon, 12 Jun 2023 08:27:14 +0000 (09:27 +0100)
committerTom Tromey <tromey@adacore.com>
Mon, 12 Jun 2023 18:32:52 +0000 (12:32 -0600)
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 <luis.machado@arm.com>
Approved-By: Tom Tromey <tom@tromey.com>
gdb/testsuite/lib/gdb.exp

index 3cdd73b7da3d44930c3401132118ac46105a00ba..c3e5d4891dcbed2c1b3262ed2e19962750bbd8ee 100644 (file)
@@ -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"