sem_ch13.adb (Alignment_Error): Removed.
authorHristian Kirtchev <kirtchev@adacore.com>
Mon, 2 May 2016 10:06:45 +0000 (10:06 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 2 May 2016 10:06:45 +0000 (12:06 +0200)
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch13.adb (Alignment_Error): Removed.
(Get_Alignment_Value): Code cleanup.

From-SVN: r235733

gcc/ada/ChangeLog
gcc/ada/sem_ch13.adb

index 7627ad335a93fbf38afdb253429b7e5481fe094a..8d6e8ef919122d5c35da7bcdabf6700b638de318 100644 (file)
@@ -1,3 +1,8 @@
+2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * sem_ch13.adb (Alignment_Error): Removed.
+       (Get_Alignment_Value): Code cleanup.
+
 2016-05-02  Tristan Gingold  <gingold@adacore.com>
 
        * sem_ch3.adb (Analyze_Object_Declaration): Use Has_Protected
index 8f078fd561ab813a1fa9b4f0900d5fbf9d0fb487..73fecfcbf3bbc4863b87df3df8aac943f782dbb0 100644 (file)
@@ -11551,36 +11551,21 @@ package body Sem_Ch13 is
    -------------------------
 
    function Get_Alignment_Value (Expr : Node_Id) return Uint is
-      procedure Alignment_Error;
-      --  Issue an error concerning a negatize or zero alignment represented by
-      --  expression Expr.
+      Align : constant Uint := Static_Integer (Expr);
 
-      ---------------------
-      -- Alignment_Error --
-      ---------------------
+   begin
+      if Align = No_Uint then
+         return No_Uint;
+
+      elsif Align <= 0 then
 
-      procedure Alignment_Error is
-      begin
          --  This error is suppressed in ASIS mode to allow for different ASIS
          --  back-ends or ASIS-based tools to query the illegal clause.
 
          if not ASIS_Mode then
             Error_Msg_N ("alignment value must be positive", Expr);
          end if;
-      end Alignment_Error;
 
-      --  Local variables
-
-      Align : constant Uint := Static_Integer (Expr);
-
-   --  Start of processing for Get_Alignment_Value
-
-   begin
-      if Align = No_Uint then
-         return No_Uint;
-
-      elsif Align <= 0 then
-         Alignment_Error;
          return No_Uint;
 
       else
@@ -11592,7 +11577,15 @@ package body Sem_Ch13 is
                exit when M = Align;
 
                if M > Align then
-                  Alignment_Error;
+
+                  --  This error is suppressed in ASIS mode to allow for
+                  --  different ASIS back-ends or ASIS-based tools to query the
+                  --  illegal clause.
+
+                  if not ASIS_Mode then
+                     Error_Msg_N ("alignment value must be power of 2", Expr);
+                  end if;
+
                   return No_Uint;
                end if;
             end;