diff options
Diffstat (limited to 'gcc/ada/utils2.c')
-rw-r--r-- | gcc/ada/utils2.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/ada/utils2.c b/gcc/ada/utils2.c index 3c0e26b..5882d09 100644 --- a/gcc/ada/utils2.c +++ b/gcc/ada/utils2.c @@ -1225,9 +1225,12 @@ build_unary_op (enum tree_code op_code, tree result_type, tree operand) } if (TYPE_FAT_POINTER_P (type)) - result = build1 (UNCONSTRAINED_ARRAY_REF, - TYPE_UNCONSTRAINED_ARRAY (type), operand); - + { + result = build1 (UNCONSTRAINED_ARRAY_REF, + TYPE_UNCONSTRAINED_ARRAY (type), operand); + TREE_READONLY (result) = TREE_STATIC (result) + = TYPE_READONLY (TYPE_UNCONSTRAINED_ARRAY (type)); + } else if (TREE_CODE (operand) == ADDR_EXPR) result = TREE_OPERAND (operand, 0); |