aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2007-02-02 21:16:23 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2007-02-02 21:16:23 +0000
commit31120e8f8b62f5696b8deecca829e20764498b30 (patch)
treee668d64309d90b73277a4e52ead3158896e53fe3 /gcc
parent093253be0670270440ce8f0b8a22bdd3856913b7 (diff)
downloadgcc-31120e8f8b62f5696b8deecca829e20764498b30.zip
gcc-31120e8f8b62f5696b8deecca829e20764498b30.tar.gz
gcc-31120e8f8b62f5696b8deecca829e20764498b30.tar.bz2
trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate NON_LVALUE_EXPR nodes and useless type conversions.
* trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate NON_LVALUE_EXPR nodes and useless type conversions. From-SVN: r121522
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/trans.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 3ee0a28..edae9d6 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 3040319..d942ebd 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);
}