diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-array.c | 1 | ||||
-rw-r--r-- | gcc/fortran/trans-stmt.c | 1 |
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; |