erroutc.ads, [...] (Set_Message_Blank): Don't insert space after hyphen (small aesthe...
authorRobert Dewar <dewar@adacore.com>
Wed, 15 Feb 2006 09:35:45 +0000 (10:35 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 15 Feb 2006 09:35:45 +0000 (10:35 +0100)
2006-02-13  Robert Dewar  <dewar@adacore.com>

* erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
after hyphen (small aesthetic change useful for a range of numbers
using ^-^.
Suppress range checks for a couple of assignments which otherwise
cause validity checks with validity checking turned on.

* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
Improvement in error message for object.
(Rep_Item_Too_Late): Remove '!' in warning message.

From-SVN: r111048

gcc/ada/erroutc.adb
gcc/ada/erroutc.ads
gcc/ada/sem_ch13.adb

index 05d17c91a8d7b8b0620f971daf44f46407c8a3d2..7489b294cbf5826562f526b444cfa39dc57c704b 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -39,7 +39,6 @@ with Output;   use Output;
 with Sinput;   use Sinput;
 with Snames;   use Snames;
 with Targparm; use Targparm;
-with Table;
 with Uintp;    use Uintp;
 
 package body Erroutc is
@@ -545,6 +544,7 @@ package body Erroutc is
       if Msglen > 0
         and then Msg_Buffer (Msglen) /= ' '
         and then Msg_Buffer (Msglen) /= '('
+        and then Msg_Buffer (Msglen) /= '-'
         and then not Manual_Quote_Mode
       then
          Set_Msg_Char (' ');
@@ -607,10 +607,16 @@ package body Erroutc is
 
       --  The following assignments ensure that the second and third percent
       --  insertion characters will correspond to the Error_Msg_Name_2 and
-      --  Error_Msg_Name_3 as required.
+      --  Error_Msg_Name_3 as required. We suppress possible validity checks in
+      --  case operating in -gnatVa mode, and Error_Msg_Name_2/3 is not needed
+      --  and has not been set.
 
-      Error_Msg_Name_1 := Error_Msg_Name_2;
-      Error_Msg_Name_2 := Error_Msg_Name_3;
+      declare
+         pragma Suppress (Range_Check);
+      begin
+         Error_Msg_Name_1 := Error_Msg_Name_2;
+         Error_Msg_Name_2 := Error_Msg_Name_3;
+      end;
    end Set_Msg_Insertion_File_Name;
 
    -----------------------------------
@@ -756,10 +762,16 @@ package body Erroutc is
 
       --  The following assignments ensure that the second and third percent
       --  insertion characters will correspond to the Error_Msg_Name_2 and
-      --  Error_Msg_Name_3 as required.
+      --  Error_Msg_Name_3 as required. We suppress possible validity checks in
+      --  case operating in -gnatVa mode, and Error_Msg_Name_1/2 is not needed
+      --  and has not been set.
 
-      Error_Msg_Name_1 := Error_Msg_Name_2;
-      Error_Msg_Name_2 := Error_Msg_Name_3;
+      declare
+         pragma Suppress (Range_Check);
+      begin
+         Error_Msg_Name_1 := Error_Msg_Name_2;
+         Error_Msg_Name_2 := Error_Msg_Name_3;
+      end;
    end Set_Msg_Insertion_Name;
 
    -------------------------------------
@@ -830,9 +842,15 @@ package body Erroutc is
       end loop;
 
       --  The following assignment ensures that a second carret insertion
-      --  character will correspond to the Error_Msg_Uint_2 parameter.
+      --  character will correspond to the Error_Msg_Uint_2 parameter. We
+      --  suppress possible validity checks in case operating in -gnatVa mode,
+      --  and Error_Msg_Uint_2 is not needed and has not been set.
 
-      Error_Msg_Uint_1 := Error_Msg_Uint_2;
+      declare
+         pragma Suppress (Range_Check);
+      begin
+         Error_Msg_Uint_1 := Error_Msg_Uint_2;
+      end;
    end Set_Msg_Insertion_Uint;
 
    -----------------
index bde057483b8de185e05772d03f6c457bcda5fec6..8ad6d51c3ec6bf69701d2993fe83b75673c9d07a 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -307,8 +307,8 @@ package Erroutc is
 
    procedure Set_Msg_Blank;
    --  Sets a single blank in the message if the preceding character is a
-   --  non-blank character other than a left parenthesis. Has no effect if
-   --  manual quote mode is turned on.
+   --  non-blank character other than a left parenthesis or minus. Has no
+   --  effect if manual quote mode is turned on.
 
    procedure Set_Msg_Blank_Conditional;
    --  Sets a single blank in the message if the preceding character is a
index a1e0dffe4d42b9038a4a3261475093b9d9a832e4..00505e6d866139fc6854657e199685c47eb4e3a7 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2006, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -981,9 +981,10 @@ package body Sem_Ch13 is
                         Size /= System_Storage_Unit * 8
                      then
                         Error_Msg_Uint_1 := UI_From_Int (System_Storage_Unit);
+                        Error_Msg_Uint_2 := Error_Msg_Uint_1 * 8;
                         Error_Msg_N
                           ("size for primitive object must be a power of 2"
-                            & " and at least ^", N);
+                            & " in the range ^-^", N);
                      end if;
                   end if;
 
@@ -3353,7 +3354,7 @@ package body Sem_Ch13 is
 
          if Present (Freeze_Node (S)) then
             Error_Msg_NE
-              ("?no more representation items for }!", Freeze_Node (S), S);
+              ("?no more representation items for }", Freeze_Node (S), S);
          end if;
 
          return True;