Allow Flang kind printing in complex.exp,pointer-to-pointer.exp,vla-ptr-info.exp
authorAlok Kumar Sharma <AlokKumar.Sharma@amd.com>
Thu, 3 Sep 2020 16:35:18 +0000 (22:05 +0530)
committerAlok Kumar Sharma <AlokKumar.Sharma@amd.com>
Thu, 3 Sep 2020 16:35:18 +0000 (22:05 +0530)
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
gdb/testsuite/gdb.fortran/complex.exp
gdb/testsuite/gdb.fortran/pointer-to-pointer.exp
gdb/testsuite/gdb.fortran/vla-ptr-info.exp
gdb/testsuite/lib/fortran.exp

index 8fd4e8c5e46591a61e52d6e1b76cfc3c89d0abf4..854dca5128e049a3f0b7137519a8a55e78f8f7c9 100644 (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
index 1faed2afb9d37b1a769fba9b57df6de11d9b4a62..5d52dce647de4f01199d208b2c85cb563c455a7d 100644 (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"
index 7129e431ed1e67006621759c68c39eed279b9d8c..4c643c29903a0b5890fe48c60e98a5db3fbdaec9 100644 (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\\)"
index bfc118491cd201a44c0c4d4e12fce7e76005d60f..7ead9191b9363d3ca0b05e2299aa532b507cc612 100644 (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"
index b9def7fa21e57305fa227eaf315f2bb19c88fa7d..97e442b84905d95ca02b120761e4571c88b2bf1c 100644 (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"