gdb/fortran: Allow for using Flang in Fortran testing

In lib/fortran.exp, in the helper function fortran_int4, there is
currently no support for the LLVM Fortran compiler, Flang.  As a
result we return the default pattern 'unknown' to match against all
4-byte integer types, which causes many tests to fail.

The same is true for all of the other helper functions related to
finding a suitable type pattern.

This commit adds support for Flang.  There should be no change when
testing with gfortran.

gdb/testsuite/ChangeLog:

	* lib/fortran.exp (fortran_int4): Handle clang.
	(fortran_int8): Likewise.
	(fortran_real4): Likewise.
	(fortran_real8): Likewise.
	(fortran_complex4): Likewise.
	(fortran_logical4): Likewise.
	(fortran_character1): Likewise.

Change-Id: Ife0d9828f78361fbd992bf21af746042b017dafc
This commit is contained in:
Alok Kumar Sharma 2020-02-04 17:17:20 +00:00 committed by Andrew Burgess
parent dcc9fbc6da
commit c3b149eb76
2 changed files with 24 additions and 7 deletions

View File

@ -1,3 +1,13 @@
2020-02-04 Alok Kumar Sharma <alokkumar.sharma@amd.com>
* lib/fortran.exp (fortran_int4): Handle clang.
(fortran_int8): Likewise.
(fortran_real4): Likewise.
(fortran_real8): Likewise.
(fortran_complex4): Likewise.
(fortran_logical4): Likewise.
(fortran_character1): Likewise.
2020-02-04 Tom de Vries <tdevries@suse.de>
* README (Race detection): Add note.

View File

@ -32,7 +32,8 @@ proc set_lang_fortran {} {
proc fortran_int4 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "int4"
} elseif {[test_compiler_info {gcc-*}]} {
} elseif {[test_compiler_info {gcc-*}]
|| [test_compiler_info {clang-*}]} {
return "integer\\(kind=4\\)"
} elseif {[test_compiler_info {icc-*}]} {
return "INTEGER\\(4\\)"
@ -44,7 +45,8 @@ proc fortran_int4 {} {
proc fortran_int8 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "int8"
} elseif {[test_compiler_info {gcc-*}]} {
} elseif {[test_compiler_info {gcc-*}]
|| [test_compiler_info {clang-*}]} {
return "integer\\(kind=8\\)"
} elseif {[test_compiler_info {icc-*}]} {
return "INTEGER\\(8\\)"
@ -56,7 +58,8 @@ proc fortran_int8 {} {
proc fortran_real4 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "real4"
} elseif {[test_compiler_info {gcc-*}]} {
} elseif {[test_compiler_info {gcc-*}]
|| [test_compiler_info {clang-*}]} {
return "real\\(kind=4\\)"
} elseif {[test_compiler_info {icc-*}]} {
return "REAL\\(4\\)"
@ -68,7 +71,8 @@ proc fortran_real4 {} {
proc fortran_real8 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "real8"
} elseif {[test_compiler_info {gcc-*}]} {
} elseif {[test_compiler_info {gcc-*}]
|| [test_compiler_info {clang-*}]} {
return "real\\(kind=8\\)"
} elseif {[test_compiler_info {icc-*}]} {
return "REAL\\(8\\)"
@ -80,7 +84,8 @@ proc fortran_real8 {} {
proc fortran_complex4 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "complex4"
} elseif {[test_compiler_info {gcc-*}]} {
} elseif {[test_compiler_info {gcc-*}]
|| [test_compiler_info {clang-*}]} {
return "complex\\(kind=4\\)"
} elseif {[test_compiler_info {icc-*}]} {
return "COMPLEX\\(4\\)"
@ -92,7 +97,8 @@ proc fortran_complex4 {} {
proc fortran_logical4 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "logical4"
} elseif {[test_compiler_info {gcc-*}]} {
} elseif {[test_compiler_info {gcc-*}]
|| [test_compiler_info {clang-*}]} {
return "logical\\(kind=4\\)"
} elseif {[test_compiler_info {icc-*}]} {
return "LOGICAL\\(4\\)"
@ -104,7 +110,8 @@ proc fortran_logical4 {} {
proc fortran_character1 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "character1"
} elseif {[test_compiler_info {gcc-*}]} {
} elseif {[test_compiler_info {gcc-*}]
|| [test_compiler_info {clang-*}]} {
return "character\\(kind=1\\)"
} elseif {[test_compiler_info {icc-*}]} {
return "CHARACTER\\(1\\)"