From: Eric Botcazou Date: Sun, 26 May 2013 08:32:34 +0000 (+0000) Subject: decl.c (gnat_to_gnu_entity): Always build the UNC variable for aliased objects with... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=184179f1834363a901d50a31610d51045b6976c1;p=gcc.git decl.c (gnat_to_gnu_entity): Always build the UNC variable for aliased objects with unconstrained nominal... * gcc-interface/decl.c (gnat_to_gnu_entity) : Always build the UNC variable for aliased objects with unconstrained nominal subtype. From-SVN: r199335 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index c072ddf10bb..7c421738e45 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2013-05-26 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Always build the + UNC variable for aliased objects with unconstrained nominal subtype. + 2013-05-24 Eric Botcazou * gcc-interface/gigi.h (gnat_init_gcc_fp): Declare. diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index 6e7c5c45a43..bf334da5761 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -1411,26 +1411,19 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) just above, we have nothing to do here. */ if (!TYPE_IS_THIN_POINTER_P (gnu_type)) { - gnu_size = NULL_TREE; - used_by_ref = true; + tree gnu_unc_var + = create_var_decl (concat_name (gnu_entity_name, "UNC"), + NULL_TREE, gnu_type, gnu_expr, + const_flag, Is_Public (gnat_entity), + imported_p || !definition, static_p, + NULL, gnat_entity); + gnu_expr + = build_unary_op (ADDR_EXPR, NULL_TREE, gnu_unc_var); + TREE_CONSTANT (gnu_expr) = 1; - if (definition && !imported_p) - { - tree gnu_unc_var - = create_var_decl (concat_name (gnu_entity_name, "UNC"), - NULL_TREE, gnu_type, gnu_expr, - const_flag, Is_Public (gnat_entity), - false, static_p, NULL, gnat_entity); - gnu_expr - = build_unary_op (ADDR_EXPR, NULL_TREE, gnu_unc_var); - TREE_CONSTANT (gnu_expr) = 1; - const_flag = true; - } - else - { - gnu_expr = NULL_TREE; - const_flag = false; - } + gnu_size = NULL_TREE; + used_by_ref = true; + const_flag = true; } gnu_type