mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
Avoid redundant operations in `fortran_array_walker'
Move inner dimension's element type determination outside the respective loops in `fortran_array_walker'. The operation is exactly the same with each iteration, so there is no point in redoing it for each element and while a smart compiler might be able to move it outside the loop it is regardless a bad coding style. No functional change.
This commit is contained in:
parent
c12d6b570d
commit
8294c9025a
@ -208,6 +208,8 @@ class fortran_array_walker
|
||||
|
||||
if (nss != m_ndimensions)
|
||||
{
|
||||
struct type *subarray_type = TYPE_TARGET_TYPE (check_typedef (type));
|
||||
|
||||
/* For dimensions other than the inner most, walk each element and
|
||||
recurse while peeling off one more dimension of the array. */
|
||||
for (LONGEST i = lowerbound;
|
||||
@ -218,13 +220,13 @@ class fortran_array_walker
|
||||
LONGEST new_offset = offset + calc.index_offset (i);
|
||||
|
||||
/* Now print the lower dimension. */
|
||||
struct type *subarray_type
|
||||
= TYPE_TARGET_TYPE (check_typedef (type));
|
||||
walk_1 (nss + 1, subarray_type, new_offset, (i == upperbound));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (type));
|
||||
|
||||
/* For the inner most dimension of the array, process each element
|
||||
within this dimension. */
|
||||
for (LONGEST i = lowerbound;
|
||||
@ -233,7 +235,6 @@ class fortran_array_walker
|
||||
{
|
||||
LONGEST elt_off = offset + calc.index_offset (i);
|
||||
|
||||
struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (type));
|
||||
if (is_dynamic_type (elt_type))
|
||||
{
|
||||
CORE_ADDR e_address = m_address + elt_off;
|
||||
|
Loading…
Reference in New Issue
Block a user