Fortran, typeprint: Forward level of details to be printed for pointers.
Variable "show" was hardcoded to zero for pointer and reference types. This implementation didn't allow a correct "whatis" print for those types and results in same output for "ptype" and "whatis". Before: (gdb) whatis t3p type = PTR TO -> ( Type t3 integer(kind=4) :: t3_i Type t2 :: t2_n End Type t3 ) After: (gdb) whatis t3p type = PTR TO -> ( Type t3 ) 2016-05-25 Bernhard Heckel <bernhard.heckel@intel.com> gdb/Changelog: * f-typeprint.c (f_type_print_base): Replace 0 by show. gdb/testsuite/Changelog: * gdb.fortran/type.f90: Add pointer variable. * gdb.fortran/whatis_type.exp: Add whatis/ptype of pointers.
This commit is contained in:
parent
8b70175dfa
commit
2bbad2ea11
5 changed files with 26 additions and 4 deletions
|
@ -1,3 +1,7 @@
|
|||
2016-05-25 Bernhard Heckel <bernhard.heckel@intel.com>
|
||||
|
||||
* f-typeprint.c (f_type_print_base): Replace 0 by show.
|
||||
|
||||
2016-05-25 Bernhard Heckel <bernhard.heckel@intel.com>
|
||||
|
||||
* f-typeprint.c (f_type_print_base): Decrease show by one.
|
||||
|
|
|
@ -308,12 +308,12 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show,
|
|||
|
||||
case TYPE_CODE_PTR:
|
||||
fprintf_filtered (stream, "PTR TO -> ( ");
|
||||
f_type_print_base (TYPE_TARGET_TYPE (type), stream, 0, level);
|
||||
f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
|
||||
break;
|
||||
|
||||
case TYPE_CODE_REF:
|
||||
fprintf_filtered (stream, "REF TO -> ( ");
|
||||
f_type_print_base (TYPE_TARGET_TYPE (type), stream, 0, level);
|
||||
f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
|
||||
break;
|
||||
|
||||
case TYPE_CODE_VOID:
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2016-05-25 Bernhard Heckel <bernhard.heckel@intel.com>
|
||||
|
||||
* gdb.fortran/type.f90: Add pointer variable.
|
||||
* gdb.fortran/whatis_type.exp: Add whatis/ptype of pointers.
|
||||
|
||||
2016-05-25 Bernhard Heckel <bernhard.heckel@intel.com>
|
||||
|
||||
* gdb.fortran/vla-type.exp: Fix testcase name.
|
||||
|
|
|
@ -33,7 +33,10 @@ program type
|
|||
|
||||
type (t1) :: t1v
|
||||
type (t2) :: t2v
|
||||
type (t3) :: t3v
|
||||
type (t3), target :: t3v
|
||||
type(t3), pointer :: t3p
|
||||
|
||||
nullify (t3p)
|
||||
|
||||
t1v%t1_i = 42
|
||||
t1v%t1_r = 42.24
|
||||
|
@ -42,6 +45,9 @@ program type
|
|||
t2v%t1_n%t1_i = 21
|
||||
t3v%t3_i = 3
|
||||
t3v%t2_n%t2_i = 32
|
||||
t3v%t2_n%t1_n%t1_i = 321 ! bp1
|
||||
t3v%t2_n%t1_n%t1_i = 321
|
||||
|
||||
t3p => t3v
|
||||
nullify (t3p) ! bp1
|
||||
|
||||
end program type
|
||||
|
|
|
@ -44,6 +44,7 @@ gdb_test "whatis t2" "type = Type t2"
|
|||
gdb_test "whatis t2v" "type = Type t2"
|
||||
gdb_test "whatis t3" "type = Type t3"
|
||||
gdb_test "whatis t3v" "type = Type t3"
|
||||
gdb_test "whatis t3p" "type = PTR TO -> \\( Type t3 \\)"
|
||||
|
||||
gdb_test "ptype t1" \
|
||||
[multi_line "type = Type t1" \
|
||||
|
@ -69,3 +70,9 @@ gdb_test "ptype t3v" \
|
|||
" $int :: t3_i" \
|
||||
" Type t2 :: t2_n" \
|
||||
"End Type t3"]
|
||||
|
||||
gdb_test "ptype t3p" \
|
||||
[multi_line "type = PTR TO -> \\( Type t3" \
|
||||
" $int :: t3_i" \
|
||||
" Type t2 :: t2_n" \
|
||||
"End Type t3 \\)"]
|
||||
|
|
Loading…
Add table
Reference in a new issue