Allow Flang kind printing in complex.exp,pointer-to-pointer.exp,vla-ptr-info.exp

In the test cases complex.exp,pointer-to-pointer.exp,vla-ptr-info.exp
fortran.exp routines are not used, which are to determine the type/kind
string. Due to this these test incorrectly fail for Flang.
Now test cases are modified to use fortran.exp routines. fortran.exp
file is modified to add absent routines fortran_complex8 and
fortran_complex16.

gdb/testsuite/ChangeLog

	* lib/fortran.exp (fortran_complex8): New proc.
	(fortran_complex16): New proc.
	* gdb.fortran/complex.exp: Use routines from fortran.exp
	* gdb.fortran/pointer-to-pointer.exp: Likewise.
	* gdb.fortran/vla-ptr-info.exp: Likewise.
This commit is contained in:
Alok Kumar Sharma 2020-09-03 22:05:18 +05:30
parent e56798df08
commit c5cd900e4f
5 changed files with 53 additions and 8 deletions

View file

@ -1,3 +1,11 @@
2020-09-03 Alok Kumar Sharma <AlokKumar.Sharma@amd.com>
* lib/fortran.exp (fortran_complex8): New proc.
(fortran_complex16): New proc.
* gdb.fortran/complex.exp: Use routines from fortran.exp
* gdb.fortran/pointer-to-pointer.exp: Likewise.
* gdb.fortran/vla-ptr-info.exp: Likewise.
2020-09-03 Tom de Vries <tdevries@suse.de>
PR breakpoint/26546

View file

@ -27,6 +27,10 @@ if ![fortran_runto_main] then {
continue
}
# Depending on the compiler being used, the type names can be printed differently.
set complex4 [fortran_complex4]
set complex8 [fortran_complex8]
set complex16 [fortran_complex16]
gdb_breakpoint [gdb_get_line_number "stop"]
gdb_continue_to_breakpoint "continue"
@ -38,29 +42,29 @@ gdb_test "print dc" " = \\(321,-22\\)"
gdb_test "print c16" " = \\(-874,19\\)"
gdb_test "whatis c" "type = complex\\(kind=4\\)"
gdb_test "whatis c" "type = $complex4"
gdb_test "print \$_creal (c)" " = 1000"
with_test_prefix "c" {
gdb_test "whatis \$" " = real"
}
gdb_test "whatis c4" "type = complex\\(kind=4\\)"
gdb_test "whatis c4" "type = $complex4"
gdb_test "print \$_creal (c4)" " = 1000"
with_test_prefix "c4" {
gdb_test "whatis \$" " = real"
}
gdb_test "whatis c8" "type = complex\\(kind=8\\)"
gdb_test "whatis c8" "type = $complex8"
gdb_test "print \$_creal (c8)" " = 321"
with_test_prefix "c8" {
gdb_test "whatis \$" " = real\\*8"
}
gdb_test "whatis dc" "type = complex\\(kind=8\\)"
gdb_test "whatis dc" "type = $complex8"
gdb_test "print \$_creal (dc)" " = 321"
with_test_prefix "dc" {
gdb_test "whatis \$" " = real\\*8"
}
gdb_test "whatis c16" "type = complex\\(kind=16\\)"
gdb_test "whatis c16" "type = $complex16"
gdb_test "print \$_creal (c16)" " = -874"
with_test_prefix "c16" {
gdb_test "whatis \$" " = real\\*16"

View file

@ -30,6 +30,9 @@ if ![fortran_runto_main] {
return -1
}
# Depending on the compiler being used, the type names can be printed differently.
set real4 [fortran_real4]
gdb_breakpoint [gdb_get_line_number "Break Here"]
gdb_continue_to_breakpoint "Break Here"
@ -38,9 +41,9 @@ gdb_test "print *buffer" \
set l_buffer_type [multi_line \
"Type l_buffer" \
" real\\(kind=4\\) :: alpha\\(:\\)" \
" $real4 :: alpha\\(:\\)" \
"End Type l_buffer" ]
gdb_test "ptype buffer" "type = PTR TO -> \\( ${l_buffer_type} \\)"
gdb_test "ptype *buffer" "type = ${l_buffer_type}"
gdb_test "ptype buffer%alpha" "type = real\\(kind=4\\) \\(5\\)"
gdb_test "ptype buffer%alpha" "type = $real4 \\(5\\)"

View file

@ -28,8 +28,10 @@ if ![fortran_runto_main] {
return -1
}
set real4 [fortran_real4]
# Check the status of a pointer to a dynamic array.
gdb_breakpoint [gdb_get_line_number "pvla-associated"]
gdb_continue_to_breakpoint "pvla-associated"
gdb_test "print &pvla" " = \\(PTR TO -> \\( real\\(kind=4\\) \\(10,10,10\\) \\)\\) ${hex}" \
gdb_test "print &pvla" " = \\(PTR TO -> \\( $real4 \\(10,10,10\\) \\)\\) ${hex}" \
"print pvla pointer information"

View file

@ -99,6 +99,34 @@ proc fortran_complex4 {} {
}
}
proc fortran_complex8 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "complex8"
} elseif {[test_compiler_info {gcc-*}]} {
return "complex\\(kind=8\\)"
} elseif {[test_compiler_info {clang-*}]} {
return "double complex"
} elseif {[test_compiler_info {icc-*}]} {
return "COMPLEX\\(8\\)"
} else {
return "unknown"
}
}
proc fortran_complex16 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "complex16"
} elseif {[test_compiler_info {gcc-*}]} {
return "complex\\(kind=16\\)"
} elseif {[test_compiler_info {clang-*}]} {
return "quad complex"
} elseif {[test_compiler_info {icc-*}]} {
return "COMPLEX\\(16\\)"
} else {
return "unknown"
}
}
proc fortran_logical4 {} {
if {[test_compiler_info {gcc-4-[012]-*}]} {
return "logical4"