aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlok Kumar Sharma <AlokKumar.Sharma@amd.com>2020-09-03 22:05:18 +0530
committerAlok Kumar Sharma <AlokKumar.Sharma@amd.com>2020-09-03 22:05:18 +0530
commitc5cd900e4f197870812c2d3e2c194871c171ef42 (patch)
treef2b9774241c88799f404b5c02615d7aa5250a78b
parente56798df08154c6e5155d3bb6cb536a14de0ebb4 (diff)
downloadgdb-c5cd900e4f197870812c2d3e2c194871c171ef42.zip
gdb-c5cd900e4f197870812c2d3e2c194871c171ef42.tar.gz
gdb-c5cd900e4f197870812c2d3e2c194871c171ef42.tar.bz2
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.
-rw-r--r--gdb/testsuite/ChangeLog8
-rw-r--r--gdb/testsuite/gdb.fortran/complex.exp14
-rw-r--r--gdb/testsuite/gdb.fortran/pointer-to-pointer.exp7
-rw-r--r--gdb/testsuite/gdb.fortran/vla-ptr-info.exp4
-rw-r--r--gdb/testsuite/lib/fortran.exp28
5 files changed, 53 insertions, 8 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 8fd4e8c..854dca5 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -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
diff --git a/gdb/testsuite/gdb.fortran/complex.exp b/gdb/testsuite/gdb.fortran/complex.exp
index 1faed2a..5d52dce 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 7129e43..4c643c2 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 bfc1184..7ead919 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 b9def7f..97e442b 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"