OSDN Git Service

2005-03-29 Eric Botcazou <ebotcazou@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 29 Mar 2005 16:23:29 +0000 (16:23 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 29 Mar 2005 16:23:29 +0000 (16:23 +0000)
* decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
* trans.c (tree_transform) <N_Identifier>: Use correct predicates.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97191 138bc75d-0d04-0410-961f-82ee72b054a4

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

index db80620..9d2e8fe 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 10955e3..fd42e83 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,