[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 30 Nov 2009 10:49:27 +0000 (11:49 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 30 Nov 2009 10:49:27 +0000 (11:49 +0100)
2009-11-30  Arnaud Charlet  <charlet@adacore.com>

* s-tassta.adb: Update comment.

2009-11-30  Robert Dewar  <dewar@adacore.com>

* a-ngelfu.adb: Minor code reorganization.

From-SVN: r154780

gcc/ada/ChangeLog
gcc/ada/a-ngelfu.adb
gcc/ada/s-tassta.adb

index e07b4fa..ff2bbb2 100644 (file)
@@ -1,3 +1,11 @@
+2009-11-30  Arnaud Charlet  <charlet@adacore.com>
+
+       * s-tassta.adb: Update comment.
+
+2009-11-30  Robert Dewar  <dewar@adacore.com>
+
+       * a-ngelfu.adb: Minor code reorganization.
+
 2009-11-30  Robert Dewar  <dewar@adacore.com>
 
        * osint.ads, prj.adb, prj.ads: Minor reformatting
index 55d14e7..aa06c98 100644 (file)
@@ -68,9 +68,8 @@ package body Ada.Numerics.Generic_Elementary_Functions is
    --  FP type.
 
    function Local_Atan
-     (Y    : Float_Type'Base;
-      X    : Float_Type'Base := 1.0)
-      return Float_Type'Base;
+     (Y : Float_Type'Base;
+      X : Float_Type'Base := 1.0) return Float_Type'Base;
    --  Common code for arc tangent after cycle reduction
 
    ----------
@@ -721,20 +720,35 @@ package body Ada.Numerics.Generic_Elementary_Functions is
    ----------------
 
    function Local_Atan
-     (Y    : Float_Type'Base;
-      X    : Float_Type'Base := 1.0)
-      return Float_Type'Base
+     (Y : Float_Type'Base;
+      X : Float_Type'Base := 1.0) return Float_Type'Base
    is
       Z        : Float_Type'Base;
       Raw_Atan : Float_Type'Base;
 
    begin
-      Z := (if abs Y > abs X then abs (X / Y) else abs (Y / X));
+      --  Z := (if abs Y > abs X then abs (X / Y) else abs (Y / X));
+
+      --  Raw_Atan :=
+      --    (if Z < Sqrt_Epsilon then Z
+      --     elsif Z = 1.0 then Pi / 4.0
+      --     else Float_Type'Base (Aux.Atan (Double (Z))));
+
+      --  Replace above with IF statements for now (ASIS gnatelim problem???)
 
-      Raw_Atan :=
-        (if Z < Sqrt_Epsilon then Z
-         elsif Z = 1.0 then Pi / 4.0
-         else Float_Type'Base (Aux.Atan (Double (Z))));
+      if abs Y > abs X then
+         Z := abs (X / Y);
+      else
+         Z := abs (Y / X);
+      end if;
+
+      if Z < Sqrt_Epsilon then
+         Raw_Atan := Z;
+      elsif Z = 1.0 then
+         Raw_Atan := Pi / 4.0;
+      else
+         Raw_Atan := Float_Type'Base (Aux.Atan (Double (Z)));
+      end if;
 
       if abs Y > abs X then
          Raw_Atan := Half_Pi - Raw_Atan;
index f56614c..a78b0d8 100644 (file)
@@ -743,9 +743,7 @@ package body System.Tasking.Stages is
       function State
         (Int : System.Interrupt_Management.Interrupt_ID) return Character;
       pragma Import (C, State, "__gnat_get_interrupt_state");
-      --  Get interrupt state.  Defined in a-init.c
-      --  The input argument is the interrupt number,
-      --  and the result is one of the following:
+      --  Get interrupt state for interrupt number Int. Defined in init.c
 
       Default : constant Character := 's';
       --    's'   Interrupt_State pragma set state to System (use "default"