decl.c (gnat_to_gnu_entity): Rework comment.
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 29 Mar 2005 16:23:29 +0000 (18:23 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 29 Mar 2005 16:23:29 +0000 (18:23 +0200)
2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>

* decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
* trans.c (tree_transform) <N_Identifier>: Use correct predicates.

From-SVN: r97191

gcc/ada/decl.c
gcc/ada/trans.c

index db806209f70c86320790eb16249a4648722d860f..9d2e8fe871de8a75f4dd0100847698b991009f14 100644 (file)
@@ -776,13 +776,12 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
              }
 
            /* Otherwise, make this into a constant pointer to the object we
-              are to rename.
-
-              Stabilize it since in this case the renaming evaluation may
-              directly dereference the initial value we make here instead
-              of the pointer we will assign it to.  We don't want variables
-              in the expression to be evaluated every time the renaming is
-              used, since their value may change in between.  */
+              are to rename and attach the object to the pointer.  We need
+              to stabilize too since the renaming evaluation may directly
+              reference the renamed object instead of the pointer we will
+              attach it to.  We don't want variables in the expression to
+              be evaluated every time the renaming is used, since their
+              value may change in between.  */
            else
              {
                bool has_side_effects = TREE_SIDE_EFFECTS (gnu_expr);
index 10955e352316d47a8317f56bb5d2829d93344247..fd42e837a2bdb3190dc87b7481d9d414c37cb57a 100644 (file)
@@ -410,8 +410,7 @@ Identifier_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p)
               && (! DECL_RENAMING_GLOBAL_P (gnu_result)
                   || global_bindings_p ())
               /* Make sure it's an lvalue like INDIRECT_REF.  */
-              && (TREE_CODE_CLASS (TREE_CODE (renamed_obj)) == 'd'
-                  || TREE_CODE_CLASS (TREE_CODE (renamed_obj)) == 'r'))
+              && (DECL_P (renamed_obj) || REFERENCE_CLASS_P (renamed_obj)))
        gnu_result = renamed_obj;
       else
        gnu_result = build_unary_op (INDIRECT_REF, NULL_TREE,