Fixed gdb to print arrays with very high indexes
In the function f77_print_array_1, the variable 'i' which holds the index is of datatype 'int', while bounds are of datatype LONGEST. Due to size of int being smaller than LONGEST, the variable 'i' stores incorrect values for high indexes (higher than max limit of int). Due to this issue in sources, two abnormal behaviors are seen while printing arrays with high indexes (please check array-bounds-high.f90) For high indexes with negative sign, gdb prints empty array even if the array has elements. (gdb) p arr $1 = () For high indexes with positive sign, gdb crashes. We have now changed the datatype of 'i' to LONGEST which is same as datatype of bounds. gdb/ChangeLog: * f-valprint.c (f77_print_array_1): Changed datatype of index variable to LONGEST from int to enable it to contain bound values correctly. gdb/testsuite/ChangeLog: * gdb.fortran/array-bounds-high.exp: New file. * gdb.fortran/array-bounds-high.f90: New file. Change-Id: Ie2dce9380a249e634e2684b9c90f225e104369b7
Loading
Please register or sign in to comment