[PATCH] gdb/testsuite: Testing with the armflang compiler
Richard Bunt
richard.bunt@linaro.org
Fri Jun 9 11:50:26 GMT 2023
On 09/06/2023 11:29, Luis Machado wrote:
> On 6/9/23 11:16, Richard Bunt via Gdb-patches wrote:
>> 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.
>>
>> ---
>> gdb/testsuite/lib/gdb.exp | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
>> index 220640210cd..b1d5ef3fef1 100644
>> --- a/gdb/testsuite/lib/gdb.exp
>> +++ b/gdb/testsuite/lib/gdb.exp
>> @@ -4531,7 +4531,7 @@ 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.
>
> Is my understanding correct that this is now handling both flang and
> clang? And clang is output for the armflang compiler?
>
That is correct. The regex has been extended to accept warnings prefixed
with either "clang" or flang". This is because I observe the armflang
preprocessor to emit warnings prefixed with clang.
> It looks OK to me, but you might want to add an explanation, in a
> comment, about why we're trying to handle clang for a fortran compiler.
Agree, that is a little confusing without additional context. I plan to
prepare a v2 with the following comment:
# The armflang preprocessor has been observed to output the
# warning prefixed with "clang", so the regex also accepts
# this.
> Reviewed-By: Luis Machado <luis.machado@arm.com>
and the Reviewed-By tag.
Thanks for the review!
Rich
More information about the Gdb-patches
mailing list