diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 3ee0a28ba0a1b6e02c2f0b16adfd6ec4fd1d5f98..edae9d64da1f4279b260419936bfce86a61f4bab 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2007-02-02 Roger Sayle <roger@eyesopen.com> + + * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate + NON_LVALUE_EXPR nodes and useless type conversions. + 2007-02-02 Paul Thomas <pault@gcc.gnu.org> PR fortran/30284 diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index 3040319f14ea99253b0b15a7532958e1b18cc094..d942ebd6fc32702918c696281114f9f790387c57 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -302,6 +302,9 @@ gfc_build_array_ref (tree base, tree offset) if (DECL_P (base)) TREE_ADDRESSABLE (base) = 1; + /* Strip NON_LVALUE_EXPR nodes. */ + STRIP_TYPE_NOPS (offset); + return build4 (ARRAY_REF, type, base, offset, NULL_TREE, NULL_TREE); }