mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-10 09:35:24 +08:00
fortran: Testsuite, fix different type naming across compilers.
Gfortran and ifort have different names for data types. Encapsulate type names in a library to increase number of supported compilers. gfortran -4.2 : int4 gfortran>=4.3 : integer(kind=4) ifort : INTEGER(4) 2016-04-18 Bernhard Heckel <bernhard.heckel@intel.com> gdb/testsuite/Changelog: * gdb.fortran/common-block.exp: Use type naming defined in lib fortran. * gdb.fortran/derived-type.exp: Use type naming defined in lib fortran. * gdb.fortran/multi-dim.exp: Use type naming defined in lib fortran. * gdb.fortran/vla-datatypes.exp: Use type naming defined in lib fortran. * gdb.fortran/vla-ptype-sub.exp: Use type naming defined in lib fortran. * gdb.fortran/vla-ptype.exp: Use type naming defined in lib fortran. * gdb.fortran/whatis_type.exp: Use type naming defined in lib fortran. * lib/fortran.exp (fortran_int4): New procedure. (fortran_real4, fortran_real8, fortran_complex4): Likewise. (fortran_logical4): Likewise.
This commit is contained in:
@ -1,3 +1,16 @@
|
|||||||
|
2016-04-18 Bernhard Heckel <bernhard.heckel@intel.com>
|
||||||
|
|
||||||
|
* gdb.fortran/common-block.exp: Use type naming defined in lib fortran.
|
||||||
|
* gdb.fortran/derived-type.exp: Use type naming defined in lib fortran.
|
||||||
|
* gdb.fortran/multi-dim.exp: Use type naming defined in lib fortran.
|
||||||
|
* gdb.fortran/vla-datatypes.exp: Use type naming defined in lib fortran.
|
||||||
|
* gdb.fortran/vla-ptype-sub.exp: Use type naming defined in lib fortran.
|
||||||
|
* gdb.fortran/vla-ptype.exp: Use type naming defined in lib fortran.
|
||||||
|
* gdb.fortran/whatis_type.exp: Use type naming defined in lib fortran.
|
||||||
|
* lib/fortran.exp (fortran_int4): New procedure.
|
||||||
|
(fortran_real4, fortran_real8, fortran_complex4): Likewise.
|
||||||
|
(fortran_logical4): Likewise.
|
||||||
|
|
||||||
2016-04-18 Benrhard Heckel <bernhard.heckel@intel.com>
|
2016-04-18 Benrhard Heckel <bernhard.heckel@intel.com>
|
||||||
|
|
||||||
* lib/gdb.exp (gdb_compile_shlib): Add flag for ICC compiler.
|
* lib/gdb.exp (gdb_compile_shlib): Add flag for ICC compiler.
|
||||||
|
@ -21,6 +21,7 @@ if {[skip_fortran_tests]} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
standard_testfile .f90
|
standard_testfile .f90
|
||||||
|
load_lib "fortran.exp"
|
||||||
|
|
||||||
if {[prepare_for_testing ${testfile}.exp ${testfile} \
|
if {[prepare_for_testing ${testfile}.exp ${testfile} \
|
||||||
$srcfile {debug f90 quiet}]} {
|
$srcfile {debug f90 quiet}]} {
|
||||||
@ -42,9 +43,10 @@ gdb_continue_to_breakpoint "stop-here-out"
|
|||||||
#set suffix "_"
|
#set suffix "_"
|
||||||
set suffix ""
|
set suffix ""
|
||||||
|
|
||||||
set int4 {(integer\(kind=4\)|INTEGER\(4\))}
|
# Depending on the compiler being used, the type names can be printed differently.
|
||||||
set real4 {(real\(kind=4\)|REAL\(4\))}
|
set int4 [fortran_int4]
|
||||||
set real8 {(real\(kind=8\)|REAL\(8\))}
|
set real4 [fortran_real4]
|
||||||
|
set real8 [fortran_real8]
|
||||||
|
|
||||||
gdb_test "whatis foo$suffix" "No symbol \"foo$suffix\" in current context."
|
gdb_test "whatis foo$suffix" "No symbol \"foo$suffix\" in current context."
|
||||||
gdb_test "ptype foo$suffix" "No symbol \"foo$suffix\" in current context."
|
gdb_test "ptype foo$suffix" "No symbol \"foo$suffix\" in current context."
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
if { [skip_fortran_tests] } { return -1 }
|
if { [skip_fortran_tests] } { return -1 }
|
||||||
|
|
||||||
standard_testfile .f90
|
standard_testfile .f90
|
||||||
|
load_lib "fortran.exp"
|
||||||
|
|
||||||
if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]} {
|
if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug f90}]} {
|
||||||
return -1
|
return -1
|
||||||
@ -31,20 +32,18 @@ if ![runto MAIN__] then {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
# Depending on the compiler version being used, the name of the 4-byte integer
|
# Depending on the compiler being used, the type names can be printed differently.
|
||||||
# and real types can be printed differently. For instance, gfortran-4.1 uses
|
set int [fortran_int4]
|
||||||
# "int4" whereas gfortran-4.3 uses "int(kind=4)".
|
set real [fortran_real4]
|
||||||
set int4 "(int4|integer\\(kind=4\\))"
|
|
||||||
set real4 "(real4|real\\(kind=4\\))"
|
|
||||||
|
|
||||||
gdb_test "ptype p" "type = Type bar\r\n *${int4} :: c\r\n *${real4} :: d\r\n *End Type bar"
|
gdb_test "ptype p" "type = Type bar\r\n *$int :: c\r\n *$real :: d\r\n *End Type bar"
|
||||||
|
|
||||||
set test "type-printing for derived type"
|
set test "type-printing for derived type"
|
||||||
gdb_test_multiple "ptype q" $test {
|
gdb_test_multiple "ptype q" $test {
|
||||||
-re "type = Type foo\r\n *${real4} :: a\r\n *Type bar\r\n *${int4} :: c\r\n *${real4} :: d\r\n *End Type bar :: x\r\n *character\\*7 :: b\r\n *End Type foo\r\n$gdb_prompt $" {
|
-re "type = Type foo\r\n *$real :: a\r\n *Type bar\r\n *$int :: c\r\n *$real :: d\r\n *End Type bar :: x\r\n *character\\*7 :: b\r\n *End Type foo\r\n$gdb_prompt $" {
|
||||||
pass $test
|
pass $test
|
||||||
}
|
}
|
||||||
-re "type = Type foo\r\n *${real4} :: a\r\n *Type bar\r\n *${int4} :: c\r\n *${real4} :: d\r\n *End Type bar :: x\r\n *character :: b\\(7\\)\r\n *End Type foo\r\n$gdb_prompt $" {
|
-re "type = Type foo\r\n *$real :: a\r\n *Type bar\r\n *$int :: c\r\n *$real :: d\r\n *End Type bar :: x\r\n *character :: b\\(7\\)\r\n *End Type foo\r\n$gdb_prompt $" {
|
||||||
# Compiler should produce string, not an array of characters.
|
# Compiler should produce string, not an array of characters.
|
||||||
setup_xfail "*-*-*"
|
setup_xfail "*-*-*"
|
||||||
fail $test
|
fail $test
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
if { [skip_fortran_tests] } { return -1 }
|
if { [skip_fortran_tests] } { return -1 }
|
||||||
|
|
||||||
standard_testfile .f90
|
standard_testfile .f90
|
||||||
|
load_lib "fortran.exp"
|
||||||
|
|
||||||
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90}] } {
|
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90}] } {
|
||||||
return -1
|
return -1
|
||||||
@ -29,10 +30,8 @@ if ![runto MAIN__] {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
# Depending on the compiler version being used, the name of the 4-byte integer
|
# Depending on the compiler being used, the type names can be printed differently.
|
||||||
# and real types can be printed differently. For instance, gfortran-4.1 uses
|
set int [fortran_int4]
|
||||||
# "int4" whereas gfortran-4.3 uses "int(kind=4)".
|
|
||||||
set int4 "(int4|integer\\(kind=4\\))"
|
|
||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "break-static"]
|
gdb_breakpoint [gdb_get_line_number "break-static"]
|
||||||
gdb_continue_to_breakpoint "break-static" ".*break-static.*"
|
gdb_continue_to_breakpoint "break-static" ".*break-static.*"
|
||||||
@ -69,7 +68,7 @@ gdb_test "print varbound(4)" \
|
|||||||
"print valid variable bound array element"
|
"print valid variable bound array element"
|
||||||
|
|
||||||
gdb_test "ptype unbound" \
|
gdb_test "ptype unbound" \
|
||||||
"type = $int4 \\(\\*\\)" \
|
"type = $int \\(\\*\\)" \
|
||||||
"print type of unbound array"
|
"print type of unbound array"
|
||||||
|
|
||||||
gdb_test "print unbound(4)" \
|
gdb_test "print unbound(4)" \
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
standard_testfile ".f90"
|
standard_testfile ".f90"
|
||||||
|
load_lib "fortran.exp"
|
||||||
|
|
||||||
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
|
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
|
||||||
{debug f90 quiet}] } {
|
{debug f90 quiet}] } {
|
||||||
@ -28,6 +29,12 @@ if ![runto_main] {
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Depending on the compiler being used, the type names can be printed differently.
|
||||||
|
set int [fortran_int4]
|
||||||
|
set real [fortran_real4]
|
||||||
|
set complex [fortran_complex4]
|
||||||
|
set logical [fortran_logical4]
|
||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "vlas-allocated"]
|
gdb_breakpoint [gdb_get_line_number "vlas-allocated"]
|
||||||
gdb_continue_to_breakpoint "vlas-allocated"
|
gdb_continue_to_breakpoint "vlas-allocated"
|
||||||
gdb_test "next" " = allocated\\\(realvla\\\)" \
|
gdb_test "next" " = allocated\\\(realvla\\\)" \
|
||||||
@ -48,13 +55,13 @@ gdb_test "print l" " = \\.TRUE\\." "charactervla allocated"
|
|||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "vlas-initialized"]
|
gdb_breakpoint [gdb_get_line_number "vlas-initialized"]
|
||||||
gdb_continue_to_breakpoint "vlas-initialized"
|
gdb_continue_to_breakpoint "vlas-initialized"
|
||||||
gdb_test "ptype intvla" "type = integer\\\(kind=4\\\) \\\(11,22,33\\\)" \
|
gdb_test "ptype intvla" "type = $int \\\(11,22,33\\\)" \
|
||||||
"ptype intvla"
|
"ptype intvla"
|
||||||
gdb_test "ptype realvla" "type = real\\\(kind=4\\\) \\\(11,22,33\\\)" \
|
gdb_test "ptype realvla" "type = $real \\\(11,22,33\\\)" \
|
||||||
"ptype realvla"
|
"ptype realvla"
|
||||||
gdb_test "ptype complexvla" "type = complex\\\(kind=4\\\) \\\(11,22,33\\\)" \
|
gdb_test "ptype complexvla" "type = $complex \\\(11,22,33\\\)" \
|
||||||
"ptype complexvla"
|
"ptype complexvla"
|
||||||
gdb_test "ptype logicalvla" "type = logical\\\(kind=4\\\) \\\(11,22,33\\\)" \
|
gdb_test "ptype logicalvla" "type = $logical \\\(11,22,33\\\)" \
|
||||||
"ptype logicalvla"
|
"ptype logicalvla"
|
||||||
gdb_test "ptype charactervla" "type = character\\\*1 \\\(11,22,33\\\)" \
|
gdb_test "ptype charactervla" "type = character\\\*1 \\\(11,22,33\\\)" \
|
||||||
"ptype charactervla"
|
"ptype charactervla"
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
standard_testfile "vla-sub.f90"
|
standard_testfile "vla-sub.f90"
|
||||||
|
load_lib "fortran.exp"
|
||||||
|
|
||||||
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
|
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
|
||||||
{debug f90 quiet}] } {
|
{debug f90 quiet}] } {
|
||||||
@ -25,27 +26,31 @@ if ![runto_main] {
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Depending on the compiler being used, the type names can be printed differently.
|
||||||
|
set int [fortran_int4]
|
||||||
|
set real [fortran_real4]
|
||||||
|
|
||||||
# Pass fixed array to function and handle them as vla in function.
|
# Pass fixed array to function and handle them as vla in function.
|
||||||
gdb_breakpoint [gdb_get_line_number "not-filled"]
|
gdb_breakpoint [gdb_get_line_number "not-filled"]
|
||||||
gdb_continue_to_breakpoint "not-filled (1st)"
|
gdb_continue_to_breakpoint "not-filled (1st)"
|
||||||
gdb_test "ptype array1" "type = integer\\\(kind=4\\\) \\\(42,42\\\)" \
|
gdb_test "ptype array1" "type = $int \\\(42,42\\\)" \
|
||||||
"ptype array1 (passed fixed)"
|
"ptype array1 (passed fixed)"
|
||||||
gdb_test "ptype array2" "type = real\\\(kind=4\\\) \\\(42,42,42\\\)" \
|
gdb_test "ptype array2" "type = $real \\\(42,42,42\\\)" \
|
||||||
"ptype array2 (passed fixed)"
|
"ptype array2 (passed fixed)"
|
||||||
gdb_test "ptype array1(40, 10)" "type = integer\\\(kind=4\\\)" \
|
gdb_test "ptype array1(40, 10)" "type = $int" \
|
||||||
"ptype array1(40, 10) (passed fixed)"
|
"ptype array1(40, 10) (passed fixed)"
|
||||||
gdb_test "ptype array2(13, 11, 5)" "type = real\\\(kind=4\\\)" \
|
gdb_test "ptype array2(13, 11, 5)" "type = $real" \
|
||||||
"ptype array2(13, 11, 5) (passed fixed)"
|
"ptype array2(13, 11, 5) (passed fixed)"
|
||||||
|
|
||||||
# Pass sub arrays to function and handle them as vla in function.
|
# Pass sub arrays to function and handle them as vla in function.
|
||||||
gdb_continue_to_breakpoint "not-filled (2nd)"
|
gdb_continue_to_breakpoint "not-filled (2nd)"
|
||||||
gdb_test "ptype array1" "type = integer\\\(kind=4\\\) \\\(6,6\\\)" \
|
gdb_test "ptype array1" "type = $int \\\(6,6\\\)" \
|
||||||
"ptype array1 (passed sub-array)"
|
"ptype array1 (passed sub-array)"
|
||||||
gdb_test "ptype array2" "type = real\\\(kind=4\\\) \\\(6,6,6\\\)" \
|
gdb_test "ptype array2" "type = $real \\\(6,6,6\\\)" \
|
||||||
"ptype array2 (passed sub-array)"
|
"ptype array2 (passed sub-array)"
|
||||||
gdb_test "ptype array1(3, 3)" "type = integer\\\(kind=4\\\)" \
|
gdb_test "ptype array1(3, 3)" "type = $int" \
|
||||||
"ptype array1(3, 3) (passed sub-array)"
|
"ptype array1(3, 3) (passed sub-array)"
|
||||||
gdb_test "ptype array2(4, 4, 4)" "type = real\\\(kind=4\\\)" \
|
gdb_test "ptype array2(4, 4, 4)" "type = $real" \
|
||||||
"ptype array2(4, 4, 4) (passed sub-array)"
|
"ptype array2(4, 4, 4) (passed sub-array)"
|
||||||
|
|
||||||
# Check ptype outside of bounds. This should not crash GDB.
|
# Check ptype outside of bounds. This should not crash GDB.
|
||||||
@ -56,13 +61,13 @@ gdb_test "ptype array2(100, 100, 100)" "no such vector element" \
|
|||||||
|
|
||||||
# Pass vla to function.
|
# Pass vla to function.
|
||||||
gdb_continue_to_breakpoint "not-filled (3rd)"
|
gdb_continue_to_breakpoint "not-filled (3rd)"
|
||||||
gdb_test "ptype array1" "type = integer\\\(kind=4\\\) \\\(20,20\\\)" \
|
gdb_test "ptype array1" "type = $int \\\(20,20\\\)" \
|
||||||
"ptype array1 (passed vla)"
|
"ptype array1 (passed vla)"
|
||||||
gdb_test "ptype array2" "type = real\\\(kind=4\\\) \\\(10,10,10\\\)" \
|
gdb_test "ptype array2" "type = $real \\\(10,10,10\\\)" \
|
||||||
"ptype array2 (passed vla)"
|
"ptype array2 (passed vla)"
|
||||||
gdb_test "ptype array1(3, 3)" "type = integer\\\(kind=4\\\)" \
|
gdb_test "ptype array1(3, 3)" "type = $int" \
|
||||||
"ptype array1(3, 3) (passed vla)"
|
"ptype array1(3, 3) (passed vla)"
|
||||||
gdb_test "ptype array2(4, 4, 4)" "type = real\\\(kind=4\\\)" \
|
gdb_test "ptype array2(4, 4, 4)" "type = $real" \
|
||||||
"ptype array2(4, 4, 4) (passed vla)"
|
"ptype array2(4, 4, 4) (passed vla)"
|
||||||
|
|
||||||
# Check ptype outside of bounds. This should not crash GDB.
|
# Check ptype outside of bounds. This should not crash GDB.
|
||||||
@ -76,12 +81,12 @@ gdb_test "ptype array2(100, 100, 100)" "no such vector element" \
|
|||||||
gdb_breakpoint [gdb_get_line_number "end-of-bar"]
|
gdb_breakpoint [gdb_get_line_number "end-of-bar"]
|
||||||
gdb_continue_to_breakpoint "end-of-bar"
|
gdb_continue_to_breakpoint "end-of-bar"
|
||||||
gdb_test "ptype array1" \
|
gdb_test "ptype array1" \
|
||||||
"type = (PTR TO -> \\( )?integer(\\(kind=4\\)|\\*4) \\(\\*\\)\\)?" \
|
"type = (PTR TO -> \\( )?$int \\(\\*\\)\\)?" \
|
||||||
"ptype array1 (arbitrary length)"
|
"ptype array1 (arbitrary length)"
|
||||||
gdb_test "ptype array2" \
|
gdb_test "ptype array2" \
|
||||||
"type = (PTR TO -> \\( )?integer(\\(kind=4\\)|\\*4) \\(4:9,10:\\*\\)\\)?" \
|
"type = (PTR TO -> \\( )?$int \\(4:9,10:\\*\\)\\)?" \
|
||||||
"ptype array2 (arbitrary length)"
|
"ptype array2 (arbitrary length)"
|
||||||
gdb_test "ptype array1(100)" "type = integer\\\(kind=4\\\)" \
|
gdb_test "ptype array1(100)" "type = $int" \
|
||||||
"ptype array1(100) (arbitrary length)"
|
"ptype array1(100) (arbitrary length)"
|
||||||
gdb_test "ptype array2(4,100)" "type = integer\\\(kind=4\\\)" \
|
gdb_test "ptype array2(4,100)" "type = $int" \
|
||||||
"ptype array2(4,100) (arbitrary length)"
|
"ptype array2(4,100) (arbitrary length)"
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
standard_testfile "vla.f90"
|
standard_testfile "vla.f90"
|
||||||
|
load_lib "fortran.exp"
|
||||||
|
|
||||||
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
|
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
|
||||||
{debug f90 quiet}] } {
|
{debug f90 quiet}] } {
|
||||||
@ -25,6 +26,9 @@ if ![runto_main] {
|
|||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Depending on the compiler being used, the type names can be printed differently.
|
||||||
|
set real [fortran_real4]
|
||||||
|
|
||||||
# Check the ptype of various VLA states and pointer to VLA's.
|
# Check the ptype of various VLA states and pointer to VLA's.
|
||||||
gdb_breakpoint [gdb_get_line_number "vla1-init"]
|
gdb_breakpoint [gdb_get_line_number "vla1-init"]
|
||||||
gdb_continue_to_breakpoint "vla1-init"
|
gdb_continue_to_breakpoint "vla1-init"
|
||||||
@ -39,40 +43,40 @@ gdb_test "ptype vla2(5, 45, 20)" \
|
|||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "vla1-allocated"]
|
gdb_breakpoint [gdb_get_line_number "vla1-allocated"]
|
||||||
gdb_continue_to_breakpoint "vla1-allocated"
|
gdb_continue_to_breakpoint "vla1-allocated"
|
||||||
gdb_test "ptype vla1" "type = real\\\(kind=4\\\) \\\(10,10,10\\\)" \
|
gdb_test "ptype vla1" "type = $real \\\(10,10,10\\\)" \
|
||||||
"ptype vla1 allocated"
|
"ptype vla1 allocated"
|
||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "vla2-allocated"]
|
gdb_breakpoint [gdb_get_line_number "vla2-allocated"]
|
||||||
gdb_continue_to_breakpoint "vla2-allocated"
|
gdb_continue_to_breakpoint "vla2-allocated"
|
||||||
gdb_test "ptype vla2" "type = real\\\(kind=4\\\) \\\(7,42:50,13:35\\\)" \
|
gdb_test "ptype vla2" "type = $real \\\(7,42:50,13:35\\\)" \
|
||||||
"ptype vla2 allocated"
|
"ptype vla2 allocated"
|
||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "vla1-filled"]
|
gdb_breakpoint [gdb_get_line_number "vla1-filled"]
|
||||||
gdb_continue_to_breakpoint "vla1-filled"
|
gdb_continue_to_breakpoint "vla1-filled"
|
||||||
gdb_test "ptype vla1" "type = real\\\(kind=4\\\) \\\(10,10,10\\\)" \
|
gdb_test "ptype vla1" "type = $real \\\(10,10,10\\\)" \
|
||||||
"ptype vla1 filled"
|
"ptype vla1 filled"
|
||||||
gdb_test "ptype vla1(3, 6, 9)" "type = real\\\(kind=4\\\)" \
|
gdb_test "ptype vla1(3, 6, 9)" "type = $real" \
|
||||||
"ptype vla1(3, 6, 9)"
|
"ptype vla1(3, 6, 9)"
|
||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "vla2-filled"]
|
gdb_breakpoint [gdb_get_line_number "vla2-filled"]
|
||||||
gdb_continue_to_breakpoint "vla2-filled"
|
gdb_continue_to_breakpoint "vla2-filled"
|
||||||
gdb_test "ptype vla2" "type = real\\\(kind=4\\\) \\\(7,42:50,13:35\\\)" \
|
gdb_test "ptype vla2" "type = $real \\\(7,42:50,13:35\\\)" \
|
||||||
"ptype vla2 filled"
|
"ptype vla2 filled"
|
||||||
gdb_test "ptype vla2(5, 45, 20)" "type = real\\\(kind=4\\\)" \
|
gdb_test "ptype vla2(5, 45, 20)" "type = $real" \
|
||||||
"ptype vla1(5, 45, 20) filled"
|
"ptype vla1(5, 45, 20) filled"
|
||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "pvla-associated"]
|
gdb_breakpoint [gdb_get_line_number "pvla-associated"]
|
||||||
gdb_continue_to_breakpoint "pvla-associated"
|
gdb_continue_to_breakpoint "pvla-associated"
|
||||||
gdb_test "ptype pvla" "type = real\\\(kind=4\\\) \\\(10,10,10\\\)" \
|
gdb_test "ptype pvla" "type = $real \\\(10,10,10\\\)" \
|
||||||
"ptype pvla associated"
|
"ptype pvla associated"
|
||||||
gdb_test "ptype pvla(3, 6, 9)" "type = real\\\(kind=4\\\)" \
|
gdb_test "ptype pvla(3, 6, 9)" "type = $real" \
|
||||||
"ptype pvla(3, 6, 9)"
|
"ptype pvla(3, 6, 9)"
|
||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "pvla-re-associated"]
|
gdb_breakpoint [gdb_get_line_number "pvla-re-associated"]
|
||||||
gdb_continue_to_breakpoint "pvla-re-associated"
|
gdb_continue_to_breakpoint "pvla-re-associated"
|
||||||
gdb_test "ptype pvla" "type = real\\\(kind=4\\\) \\\(7,42:50,13:35\\\)" \
|
gdb_test "ptype pvla" "type = $real \\\(7,42:50,13:35\\\)" \
|
||||||
"ptype pvla re-associated"
|
"ptype pvla re-associated"
|
||||||
gdb_test "ptype vla2(5, 45, 20)" "type = real\\\(kind=4\\\)" \
|
gdb_test "ptype vla2(5, 45, 20)" "type = $real" \
|
||||||
"ptype vla1(5, 45, 20) re-associated"
|
"ptype vla1(5, 45, 20) re-associated"
|
||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "pvla-deassociated"]
|
gdb_breakpoint [gdb_get_line_number "pvla-deassociated"]
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
if { [skip_fortran_tests] } { continue }
|
if { [skip_fortran_tests] } { continue }
|
||||||
|
|
||||||
standard_testfile type.f90
|
standard_testfile type.f90
|
||||||
|
load_lib "fortran.exp"
|
||||||
|
|
||||||
if { [prepare_for_testing ${testfile}.exp ${testfile} \
|
if { [prepare_for_testing ${testfile}.exp ${testfile} \
|
||||||
${srcfile} {debug f90}] } {
|
${srcfile} {debug f90}] } {
|
||||||
@ -27,11 +28,15 @@ if ![runto MAIN__] {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Depending on the compiler being used, the type names can be printed differently.
|
||||||
|
set int [fortran_int4]
|
||||||
|
set real [fortran_real4]
|
||||||
|
|
||||||
gdb_breakpoint [gdb_get_line_number "bp1"]
|
gdb_breakpoint [gdb_get_line_number "bp1"]
|
||||||
gdb_continue_to_breakpoint "bp1"
|
gdb_continue_to_breakpoint "bp1"
|
||||||
|
|
||||||
set t1_i "integer\\\(kind=4\\\) :: t1_i"
|
set t1_i "$int :: t1_i"
|
||||||
set t1_r "real\\\(kind=4\\\) :: t1_r"
|
set t1_r "$real :: t1_r"
|
||||||
|
|
||||||
gdb_test "whatis t1" \
|
gdb_test "whatis t1" \
|
||||||
"type = Type t1\r\n${t1_i}\r\n${t1_r}\r\nEnd Type t1" \
|
"type = Type t1\r\n${t1_i}\r\n${t1_r}\r\nEnd Type t1" \
|
||||||
|
@ -28,3 +28,63 @@ proc set_lang_fortran {} {
|
|||||||
}
|
}
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc fortran_int4 {} {
|
||||||
|
if {[test_compiler_info {gcc-4-[012]-*}]} {
|
||||||
|
return "int4"
|
||||||
|
} elseif {[test_compiler_info {gcc-*}]} {
|
||||||
|
return "integer\\(kind=4\\)"
|
||||||
|
} elseif {[test_compiler_info {icc-*}]} {
|
||||||
|
return "INTEGER\\(4\\)"
|
||||||
|
} else {
|
||||||
|
return "unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc fortran_real4 {} {
|
||||||
|
if {[test_compiler_info {gcc-4-[012]-*}]} {
|
||||||
|
return "real4"
|
||||||
|
} elseif {[test_compiler_info {gcc-*}]} {
|
||||||
|
return "real\\(kind=4\\)"
|
||||||
|
} elseif {[test_compiler_info {icc-*}]} {
|
||||||
|
return "REAL\\(4\\)"
|
||||||
|
} else {
|
||||||
|
return "unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc fortran_real8 {} {
|
||||||
|
if {[test_compiler_info {gcc-4-[012]-*}]} {
|
||||||
|
return "real8"
|
||||||
|
} elseif {[test_compiler_info {gcc-*}]} {
|
||||||
|
return "real\\(kind=8\\)"
|
||||||
|
} elseif {[test_compiler_info {icc-*}]} {
|
||||||
|
return "REAL\\(8\\)"
|
||||||
|
} else {
|
||||||
|
return "unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc fortran_complex4 {} {
|
||||||
|
if {[test_compiler_info {gcc-4-[012]-*}]} {
|
||||||
|
return "complex4"
|
||||||
|
} elseif {[test_compiler_info {gcc-*}]} {
|
||||||
|
return "complex\\(kind=4\\)"
|
||||||
|
} elseif {[test_compiler_info {icc-*}]} {
|
||||||
|
return "COMPLEX\\(4\\)"
|
||||||
|
} else {
|
||||||
|
return "unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
proc fortran_logical4 {} {
|
||||||
|
if {[test_compiler_info {gcc-4-[012]-*}]} {
|
||||||
|
return "logical4"
|
||||||
|
} elseif {[test_compiler_info {gcc-*}]} {
|
||||||
|
return "logical\\(kind=4\\)"
|
||||||
|
} elseif {[test_compiler_info {icc-*}]} {
|
||||||
|
return "LOGICAL\\(4\\)"
|
||||||
|
} else {
|
||||||
|
return "unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user