aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/utils2.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/utils2.c')
-rw-r--r--gcc/ada/utils2.c9
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);