From c5cd900e4f197870812c2d3e2c194871c171ef42 Mon Sep 17 00:00:00 2001 From: Alok Kumar Sharma Date: Thu, 3 Sep 2020 22:05:18 +0530 Subject: [PATCH] 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. --- gdb/testsuite/ChangeLog | 8 ++++++ gdb/testsuite/gdb.fortran/complex.exp | 14 ++++++---- .../gdb.fortran/pointer-to-pointer.exp | 7 +++-- gdb/testsuite/gdb.fortran/vla-ptr-info.exp | 4 ++- gdb/testsuite/lib/fortran.exp | 28 +++++++++++++++++++ 5 files changed, 53 insertions(+), 8 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 8fd4e8c5e46..854dca5128e 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2020-09-03 Alok Kumar Sharma + + * 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 PR breakpoint/26546 diff --git a/gdb/testsuite/gdb.fortran/complex.exp b/gdb/testsuite/gdb.fortran/complex.exp index 1faed2afb9d..5d52dce647d 100644 --- a/gdb/testsuite/gdb.fortran/complex.exp +++ b/gdb/testsuite/gdb.fortran/complex.exp @@ -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" diff --git a/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp b/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp index 7129e431ed1..4c643c29903 100644 --- a/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp +++ b/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp @@ -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\\)" diff --git a/gdb/testsuite/gdb.fortran/vla-ptr-info.exp b/gdb/testsuite/gdb.fortran/vla-ptr-info.exp index bfc118491cd..7ead9191b93 100644 --- a/gdb/testsuite/gdb.fortran/vla-ptr-info.exp +++ b/gdb/testsuite/gdb.fortran/vla-ptr-info.exp @@ -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" diff --git a/gdb/testsuite/lib/fortran.exp b/gdb/testsuite/lib/fortran.exp index b9def7fa21e..97e442b8490 100644 --- a/gdb/testsuite/lib/fortran.exp +++ b/gdb/testsuite/lib/fortran.exp @@ -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" -- 2.30.2