aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-array.c1
-rw-r--r--gcc/fortran/trans-stmt.c1
3 files changed, 8 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 73dcf0e..a6d2223 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,11 @@
2007-01-05 Roger Sayle <roger@eyesopen.com>
+ * trans-array.c (gfc_trans_array_constructor_value): Make the
+ static const "data" array as TREE_READONLY.
+ * trans-stmt.c (gfc_trans_character_select): Likewise.
+
+2007-01-05 Roger Sayle <roger@eyesopen.com>
+
* trans-array.c (gfc_conv_loop_setup): Test whether the loop
stride is one, to avoid fold_build2 introducing a useless
NON_LVALUE_EXPR node.
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index d6d3ff7..86e5657 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -1224,6 +1224,7 @@ gfc_trans_array_constructor_value (stmtblock_t * pblock, tree type,
TREE_STATIC (tmp) = 1;
TREE_CONSTANT (tmp) = 1;
TREE_INVARIANT (tmp) = 1;
+ TREE_READONLY (tmp) = 1;
DECL_INITIAL (tmp) = init;
init = tmp;
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 8a2a2b3..3c14d02 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -1445,6 +1445,7 @@ gfc_trans_character_select (gfc_code *code)
TREE_CONSTANT (tmp) = 1;
TREE_INVARIANT (tmp) = 1;
TREE_STATIC (tmp) = 1;
+ TREE_READONLY (tmp) = 1;
DECL_INITIAL (tmp) = init;
init = tmp;