[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 20 Jan 2017 10:20:02 +0000 (11:20 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 20 Jan 2017 10:20:02 +0000 (11:20 +0100)
2017-01-20  Arnaud Charlet  <charlet@adacore.com>

* exp_ch3.adb: Reenable code.

2017-01-20  Yannick Moy  <moy@adacore.com>

* sinfo.ads: Document lack of Do_Division_Check flag
on float exponentiation.

From-SVN: r244693

gcc/ada/ChangeLog
gcc/ada/exp_ch3.adb
gcc/ada/sinfo.ads

index 4553f1c1e247d1368b0c4f5f62cbfa63f72b07f9..9ad60015b0ebb60ef540612712a2562f38856c09 100644 (file)
@@ -1,3 +1,12 @@
+2017-01-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * exp_ch3.adb: Reenable code.
+
+2017-01-20  Yannick Moy  <moy@adacore.com>
+
+       * sinfo.ads: Document lack of Do_Division_Check flag
+       on float exponentiation.
+
 2017-01-19  Javier Miranda  <miranda@adacore.com>
 
        * ghost.adb (Propagate_Ignored_Ghost_Code): Protect access to the
index 4c34eb9dd6f7032c6fd306216ad803fb69a0fe8f..f4f457178bbf4c3f3f8f5c4115ffec3e8df4ffcd 100644 (file)
@@ -5901,10 +5901,7 @@ package body Exp_Ch3 is
          --  would otherwise make two copies. The RM allows removing redunant
          --  Adjust/Finalize calls, but does not allow insertion of extra ones.
 
-         --  This part is disabled for now, because it breaks CodePeer runs
-
-         return (False -- ???
-             and then Nkind (Expr_Q) = N_Explicit_Dereference
+         return (Nkind (Expr_Q) = N_Explicit_Dereference
              and then not Comes_From_Source (Expr_Q)
              and then Nkind (Original_Node (Expr_Q)) = N_Function_Call
              and then Nkind (Object_Definition (N)) in N_Has_Entity
index 404630e3ceaa8f58278477084759eb4ece18f369..bf938525d559a7990cdf273e7913be9d67f80eca 100644 (file)
@@ -700,7 +700,10 @@ package Sinfo is
    --  analysis, on expression nodes that may trigger the corresponding
    --  check. The front end then inserts or not the check during expansion. In
    --  particular, these flags should also be correctly set in ASIS mode and
-   --  GNATprove mode.
+   --  GNATprove mode. As a special case, the front end does not insert a
+   --  Do_Division_Check flag on float exponentiation expressions, for the case
+   --  where the value is 0.0 and the exponent is negative, although this case
+   --  does lead to a division check failure.
 
    --  Note: the expander always takes care of the Do_Range check case,
    --  so this flag will never be set in the expanded tree passed to the