aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/trans.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gnat.com>2001-10-26 16:01:07 +0000
committerGeert Bosch <bosch@gcc.gnu.org>2001-10-26 18:01:07 +0200
commit7a3a8c068bfe942e28089b7a07a32690edad14ea (patch)
treeed4707cd5dcbe013280768918cb414abc1be1092 /gcc/ada/trans.c
parentb403bd177c82c7ec36f72c07caa0f08bf5a49d93 (diff)
downloadgcc-7a3a8c068bfe942e28089b7a07a32690edad14ea.zip
gcc-7a3a8c068bfe942e28089b7a07a32690edad14ea.tar.gz
gcc-7a3a8c068bfe942e28089b7a07a32690edad14ea.tar.bz2
decl.c (gnat_to_gnu_entity, [...]): Make constant variant of designated type for Is_Access_Constant.
* decl.c (gnat_to_gnu_entity, case E_General_Access_Type): Make constant variant of designated type for Is_Access_Constant. Call update_pointer_to with main variant. * trans.c (process_freeze_entity, process_type): Call update_pointer_to on main variant. * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE. If main variant, update all other variants. * utils2.c (build_unary_op, case INDIRECT_REF): No longer set TREE_STATIC. From-SVN: r46547
Diffstat (limited to 'gcc/ada/trans.c')
-rw-r--r--gcc/ada/trans.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c
index 861c3ea..61f90f9 100644
--- a/gcc/ada/trans.c
+++ b/gcc/ada/trans.c
@@ -4048,7 +4048,8 @@ process_freeze_entity (gnat_node)
if (gnu_old != 0)
{
DECL_NAME (gnu_new) = DECL_NAME (gnu_old);
- update_pointer_to (TREE_TYPE (gnu_old), TREE_TYPE (gnu_new));
+ update_pointer_to (TYPE_MAIN_VARIANT (TREE_TYPE (gnu_old)),
+ TREE_TYPE (gnu_new));
}
}
@@ -4725,7 +4726,8 @@ process_type (gnat_entity)
/* If we have an old type and we've made pointers to this type,
update those pointers. */
if (gnu_old != 0)
- update_pointer_to (TREE_TYPE (gnu_old), TREE_TYPE (gnu_new));
+ update_pointer_to (TYPE_MAIN_VARIANT (TREE_TYPE (gnu_old)),
+ TREE_TYPE (gnu_new));
/* If this is a record type corresponding to a task or protected type
that is a completion of an incomplete type, perform a similar update
@@ -4744,7 +4746,8 @@ process_type (gnat_entity)
save_gnu_tree (Corresponding_Concurrent_Type (gnat_entity),
gnu_new, 0);
- update_pointer_to (TREE_TYPE (gnu_task_old), TREE_TYPE (gnu_new));
+ update_pointer_to (TYPE_MAIN_VARIANT (TREE_TYPE (gnu_task_old)),
+ TREE_TYPE (gnu_new));
}
}