trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP on a dereference built for...
authorEric Botcazou <ebotcazou@adacore.com>
Sat, 18 Jun 2011 10:31:26 +0000 (10:31 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sat, 18 Jun 2011 10:31:26 +0000 (10:31 +0000)
* gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
on a dereference built for a by-ref object if it has an address clause.

From-SVN: r175172

gcc/ada/ChangeLog
gcc/ada/gcc-interface/trans.c

index b3db7a928c38a5fc53b8c2ef0b1ab7fe82ecc0ed..fdba3c4ea1ee3e1c6138e7892989b0d059872845 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
+       on a dereference built for a by-ref object if it has an address clause.
+
 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
 
        * einfo.ads (Address_Taken): Document use for the second argument of
index 8e949a89edc586e631e5f368969d27cf56ef4535..bf533bdf332cadd0e2c0b704aef63ed9c5f4932a 100644 (file)
@@ -1018,7 +1018,8 @@ Identifier_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p)
       else
        {
          gnu_result = build_unary_op (INDIRECT_REF, NULL_TREE, gnu_result);
-         if (TREE_CODE (gnu_result) == INDIRECT_REF)
+         if (TREE_CODE (gnu_result) == INDIRECT_REF
+             && No (Address_Clause (gnat_temp)))
            TREE_THIS_NOTRAP (gnu_result) = 1;
        }