2010-09-09 Thomas Quinot <quinot@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Sep 2010 12:31:35 +0000 (12:31 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Sep 2010 12:31:35 +0000 (12:31 +0000)
* s-strxdr.adb, gnat_rm.texi, s-stratt-xdr.adb, s-stratt.ads: Rename
s-strxdr.adb to s-stratt-xdr.adb

2010-09-09  Robert Dewar  <dewar@adacore.com>

* ali-util.adb (Obsolescent_Check): Removed.
* gprep.adb (Obsolescent_Check): Removed.
Remove Obsolescent_Check parameter in Scng instantiation
* prj-err.adb (Obsolescent_Check): Removed.
* prj-err.ads (Obsolescent_Check): Removed.
Remove Obsolescent_Check parameter in Scng instantiation
* scans.ads (Based_Literal_Uses_Colon): New flag
* scn.adb (Obsolscent_Check_Flag): Removed
(Obsolscent_Check): Removed
(Set_Obsolescent_Check): Removed
(Post_Scan): Add handling for obsolescent features
* scn.ads (Obsolscent_Check): Removed
(Set_Obsolescent_Check): Removed
(Post_Scan): Can no longer be inlined
Remove Obsolescent_Check from instantiation of Scng
* scng.adb (Nlit): Set Based_Literal_Uses_Colon
(Nlit): Remove handling of obsolescent check
(Scan, case '%'): Remove handling of obsolescent check
(Scan, case '|'): Call Post_Scan
(Scan, case '!'): Remove handling of obsolescent check, call Post_Scan
* scng.ads Remove Obsolescent_Check argument from Scng generic
(Post_Scan): Now called for Tok_Vertical_Bar
* sinput-l.adb: Remove calls to Set_Obsolescent_Check

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164081 138bc75d-0d04-0410-961f-82ee72b054a4

14 files changed:
gcc/ada/ChangeLog
gcc/ada/ali-util.adb
gcc/ada/gnat_rm.texi
gcc/ada/gprep.adb
gcc/ada/prj-err.adb
gcc/ada/prj-err.ads
gcc/ada/s-stratt-xdr.adb [moved from gcc/ada/s-strxdr.adb with 100% similarity]
gcc/ada/s-stratt.ads
gcc/ada/scans.ads
gcc/ada/scn.adb
gcc/ada/scn.ads
gcc/ada/scng.adb
gcc/ada/scng.ads
gcc/ada/sinput-l.adb

index 027896d..0d2bd8e 100644 (file)
@@ -1,3 +1,34 @@
+2010-09-09  Thomas Quinot  <quinot@adacore.com>
+
+       * s-strxdr.adb, gnat_rm.texi, s-stratt-xdr.adb, s-stratt.ads: Rename
+       s-strxdr.adb to s-stratt-xdr.adb
+
+2010-09-09  Robert Dewar  <dewar@adacore.com>
+
+       * ali-util.adb (Obsolescent_Check): Removed.
+       * gprep.adb (Obsolescent_Check): Removed.
+       Remove Obsolescent_Check parameter in Scng instantiation
+       * prj-err.adb (Obsolescent_Check): Removed.
+       * prj-err.ads (Obsolescent_Check): Removed.
+       Remove Obsolescent_Check parameter in Scng instantiation
+       * scans.ads (Based_Literal_Uses_Colon): New flag
+       * scn.adb (Obsolscent_Check_Flag): Removed
+       (Obsolscent_Check): Removed
+       (Set_Obsolescent_Check): Removed
+       (Post_Scan): Add handling for obsolescent features
+       * scn.ads (Obsolscent_Check): Removed
+       (Set_Obsolescent_Check): Removed
+       (Post_Scan): Can no longer be inlined
+       Remove Obsolescent_Check from instantiation of Scng
+       * scng.adb (Nlit): Set Based_Literal_Uses_Colon
+       (Nlit): Remove handling of obsolescent check
+       (Scan, case '%'): Remove handling of obsolescent check
+       (Scan, case '|'): Call Post_Scan
+       (Scan, case '!'): Remove handling of obsolescent check, call Post_Scan
+       * scng.ads Remove Obsolescent_Check argument from Scng generic
+       (Post_Scan): Now called for Tok_Vertical_Bar
+       * sinput-l.adb: Remove calls to Set_Obsolescent_Check
+
 2010-09-09  Doug Rupp  <rupp@adacore.com>
 
        * gnatlbr.adb: Removed.
index 001d654..8c837b4 100644 (file)
@@ -50,8 +50,6 @@ package body ALI.Util is
 
    procedure Error_Msg_SP (Msg : String);
 
-   procedure Obsolescent_Check (S : Source_Ptr);
-
    --  Instantiation of Styleg, needed to instantiate Scng
 
    package Style is new Styleg
@@ -61,8 +59,7 @@ package body ALI.Util is
    --  Get_File_Checksum).
 
    package Scanner is new Scng
-     (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC, Error_Msg_SP,
-      Obsolescent_Check, Style);
+     (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC, Error_Msg_SP, Style);
 
    type Header_Num is range 0 .. 1_000;
 
@@ -201,16 +198,6 @@ package body ALI.Util is
       Interfaces.Reset;
    end Initialize_ALI_Source;
 
-   -----------------------
-   -- Obsolescent_Check --
-   -----------------------
-
-   procedure Obsolescent_Check (S : Source_Ptr) is
-      pragma Warnings (Off, S);
-   begin
-      null;
-   end Obsolescent_Check;
-
    ---------------
    -- Post_Scan --
    ---------------
index 8d05b91..0905f1c 100644 (file)
@@ -7182,16 +7182,16 @@ for scalar types.
 @cindex Stream oriented attributes
 The XDR implementation is provided as an alternative body of the
 @code{System.Stream_Attributes} package, in the file
-@file{s-strxdr.adb} in the GNAT library.
-There is no @file{s-strxdr.ads} file.
+@file{s-stratt-xdr.adb} in the GNAT library.
+There is no @file{s-stratt-xdr.ads} file.
 In order to install the XDR implementation, do the following:
 @enumerate
 @item Replace the default implementation of the
 @code{System.Stream_Attributes} package with the XDR implementation.
 For example on a Unix platform issue the commands:
 @smallexample
-$ mv s-stratt.adb s-strold.adb
-$ mv s-strxdr.adb s-stratt.adb
+$ mv s-stratt.adb s-stratt-default.adb
+$ mv s-stratt-xdr.adb s-stratt.adb
 @end smallexample
 
 @item
index eb6cdde..88710d6 100644 (file)
@@ -91,9 +91,6 @@ package body GPrep is
    procedure Display_Copyright;
    --  Display the copyright notice
 
-   procedure Obsolescent_Check (S : Source_Ptr);
-   --  Null procedure, needed by instantiation of Scng below
-
    procedure Post_Scan;
    --  Null procedure, needed by instantiation of Scng below
 
@@ -103,7 +100,6 @@ package body GPrep is
       Errutil.Error_Msg_S,
       Errutil.Error_Msg_SC,
       Errutil.Error_Msg_SP,
-      Obsolescent_Check,
       Errutil.Style);
    --  The scanner for the preprocessor
 
@@ -311,16 +307,6 @@ package body GPrep is
       New_Line (Outfile.all);
    end New_EOL_To_Outfile;
 
-   -----------------------
-   -- Obsolescent_Check --
-   -----------------------
-
-   procedure Obsolescent_Check (S : Source_Ptr) is
-      pragma Warnings (Off, S);
-   begin
-      null;
-   end Obsolescent_Check;
-
    ---------------
    -- Post_Scan --
    ---------------
index 3728c9e..f0e10f8 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2002-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2002-2010, 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- --
@@ -29,16 +29,6 @@ with Stringt;  use Stringt;
 
 package body Prj.Err is
 
-   -----------------------
-   -- Obsolescent_Check --
-   -----------------------
-
-   procedure Obsolescent_Check (S : Source_Ptr) is
-      pragma Warnings (Off, S);
-   begin
-      null;
-   end Obsolescent_Check;
-
    ---------------
    -- Post_Scan --
    ---------------
index d07285e..3f6b684 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2002-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2002-2010, 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- --
@@ -82,20 +82,16 @@ package Prj.Err is
    -- Scanner --
    -------------
 
-   procedure Obsolescent_Check (S : Source_Ptr);
-   --  Dummy null procedure for Scng instantiation
-
    procedure Post_Scan;
    --  Convert an Ada operator symbol into a standard string
 
    package Scanner is new Scng
-     (Post_Scan         => Post_Scan,
-      Error_Msg         => Errutil.Error_Msg,
-      Error_Msg_S       => Errutil.Error_Msg_S,
-      Error_Msg_SC      => Errutil.Error_Msg_SC,
-      Error_Msg_SP      => Errutil.Error_Msg_SP,
-      Obsolescent_Check => Obsolescent_Check,
-      Style             => Errutil.Style);
+     (Post_Scan    => Post_Scan,
+      Error_Msg    => Errutil.Error_Msg,
+      Error_Msg_S  => Errutil.Error_Msg_S,
+      Error_Msg_SC => Errutil.Error_Msg_SC,
+      Error_Msg_SP => Errutil.Error_Msg_SP,
+      Style        => Errutil.Style);
    --  Instantiation of the generic scanner
 
 end Prj.Err;
index ee5da8d..498700e 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2010, 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- --
@@ -157,10 +157,10 @@ package System.Stream_Attributes is
 
    function Block_IO_OK return Boolean;
    --  Package System.Stream_Attributes has several bodies - the default one
-   --  distributed with GNAT, s-strxdr.adb which is based on the XDR standard
-   --  and s-stratt.adb for Garlic. All three bodies share the same spec. The
-   --  role of this function is to determine whether the current version of
-   --  System.Stream_Attributes is able to support block IO.
+   --  distributed with GNAT, and s-stratt-xdr.adb, which is based on the XDR
+   --  standard. Both bodies share the same spec. The role of this function is
+   --  to indicate whether the current version of System.Stream_Attributes
+   --  supports block IO.
 
 private
    pragma Inline (I_AD);
index 770d53b..0532862 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2010, 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- --
@@ -415,27 +415,34 @@ package Scans is
    --  We do things this way to minimize the impact on comment scanning.
 
    Character_Code : Char_Code;
-   --  Valid only when Token is Tok_Char_Literal
+   --  Valid only when Token is Tok_Char_Literal. Contains the value of the
+   --  scanned literal.
 
    Real_Literal_Value : Ureal;
-   --  Valid only when Token is Tok_Real_Literal
+   --  Valid only when Token is Tok_Real_Literal, contains the value of the
+   --  scanned literal.
 
    Int_Literal_Value : Uint;
-   --  Valid only when Token = Tok_Integer_Literal;
+   --  Valid only when Token = Tok_Integer_Literal, contains the value of the
+   --  scanned literal.
+
+   Based_Literal_Uses_Colon : Boolean;
+   --  Valid only when Token = Tok_Integer_Literal or Tok_Real_Literal. Set
+   --  True only for the case of a based literal using ':' instead of '#'.
 
    String_Literal_Id : String_Id;
-   --  Id for currently scanned string value.
    --  Valid only when Token = Tok_String_Literal or Tok_Operator_Symbol.
+   --  Contains the Id for currently scanned string value.
 
    Wide_Character_Found : Boolean := False;
-   --  Set True if wide character found (i.e. a character that does not fit
-   --  in Character, but fits in Wide_Wide_Character).
-   --  Valid only when Token = Tok_String_Literal.
+   --  Valid only when Token = Tok_String_Literal. Set True if wide character
+   --  found (i.e. a character that does not fit in Character, but fits in
+   --  Wide_Wide_Character).
 
    Wide_Wide_Character_Found : Boolean := False;
-   --  Set True if wide wide character found (i.e. a character that does
-   --  not fit in Character or Wide_Character).
-   --  Valid only when Token = Tok_String_Literal.
+   --  Valid only when Token = Tok_String_Literal. Set True if wide wide
+   --  character found (i.e. a character that does not fit in Character or
+   --  Wide_Character).
 
    Special_Character : Character;
    --  Valid only when Token = Tok_Special. Returns one of the characters
index 9848550..eb6a978 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2010, 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- --
@@ -44,10 +44,6 @@ package body Scn is
 
    use ASCII;
 
-   Obsolescent_Check_Flag : Boolean := True;
-   --  Obsolescent check activation. Set to False during integrated
-   --  preprocessing.
-
    Used_As_Identifier : array (Token_Type) of Boolean;
    --  Flags set True if a given keyword is used as an identifier (used to
    --  make sure that we only post an error message for incorrect use of a
@@ -340,28 +336,61 @@ package body Scn is
       end loop;
    end Initialize_Scanner;
 
-   -----------------------
-   -- Obsolescent_Check --
-   -----------------------
-
-   procedure Obsolescent_Check (S : Source_Ptr) is
-   begin
-      if Obsolescent_Check_Flag then
-         --  This is a pain in the neck case, since we normally need a node to
-         --  call Check_Restrictions, and all we have is a source pointer. The
-         --  easiest thing is to construct a dummy node. A bit kludgy, but this
-         --  is a marginal case. It's not worth trying to do things more
-         --  cleanly.
-
-         Check_Restriction (No_Obsolescent_Features, New_Node (N_Empty, S));
-      end if;
-   end Obsolescent_Check;
-
    ---------------
    -- Post_Scan --
    ---------------
 
    procedure Post_Scan is
+      procedure Check_Obsolescent_Features_Restriction (S : Source_Ptr);
+      --  This checks for Obsolescent_Features restriction being active, and
+      --  if so, flags the restriction as occurring at the given scan location.
+
+      procedure Check_Obsolete_Base_Char;
+      --  Check for numeric literal using ':' instead of '#' for based case
+
+      --------------------------------------------
+      -- Check_Obsolescent_Features_Restriction --
+      --------------------------------------------
+
+      procedure Check_Obsolescent_Features_Restriction (S : Source_Ptr) is
+      begin
+         --  Normally we have a node handy for posting restrictions. We don't
+         --  have such a node here, so construct a dummy one with the right
+         --  scan pointer. This is only used to get the Sloc value anyway.
+
+         Check_Restriction (No_Obsolescent_Features, New_Node (N_Empty, S));
+      end Check_Obsolescent_Features_Restriction;
+
+      ------------------------------
+      -- Check_Obsolete_Base_Char --
+      ------------------------------
+
+      procedure Check_Obsolete_Base_Char is
+         S : Source_Ptr;
+
+      begin
+         if Based_Literal_Uses_Colon then
+
+            --  Find the : for the restriction or warning message
+
+            S := Token_Ptr;
+            while Source (S) /= ':' loop
+               S := S + 1;
+            end loop;
+
+            Check_Obsolescent_Features_Restriction (S);
+
+            if Warn_On_Obsolescent_Feature then
+               Error_Msg
+                 ("use of "":"" is an obsolescent feature (RM J.2(3))?", S);
+               Error_Msg
+                 ("\use ""'#"" instead?", S);
+            end if;
+         end if;
+      end Check_Obsolete_Base_Char;
+
+   --  Start of processing for Post_Scan
+
    begin
       case Token is
          when Tok_Char_Literal =>
@@ -376,10 +405,12 @@ package body Scn is
          when Tok_Real_Literal =>
             Token_Node := New_Node (N_Real_Literal, Token_Ptr);
             Set_Realval (Token_Node, Real_Literal_Value);
+            Check_Obsolete_Base_Char;
 
          when Tok_Integer_Literal =>
             Token_Node := New_Node (N_Integer_Literal, Token_Ptr);
             Set_Intval (Token_Node, Int_Literal_Value);
+            Check_Obsolete_Base_Char;
 
          when Tok_String_Literal =>
             Token_Node := New_Node (N_String_Literal, Token_Ptr);
@@ -389,11 +420,32 @@ package body Scn is
               (Token_Node, Wide_Wide_Character_Found);
             Set_Strval (Token_Node, String_Literal_Id);
 
+            if Source (Token_Ptr) = '%' then
+               Check_Obsolescent_Features_Restriction (Token_Ptr);
+
+               if Warn_On_Obsolescent_Feature then
+                  Error_Msg_SC
+                    ("use of ""'%"" is an obsolescent feature (RM J.2(4))?");
+                  Error_Msg_SC ("\use """""" instead?");
+               end if;
+            end if;
+
          when Tok_Operator_Symbol =>
             Token_Node := New_Node (N_Operator_Symbol, Token_Ptr);
             Set_Chars (Token_Node, Token_Name);
             Set_Strval (Token_Node, String_Literal_Id);
 
+         when Tok_Vertical_Bar =>
+            if Source (Token_Ptr) = '!' then
+               Check_Obsolescent_Features_Restriction (Token_Ptr);
+
+               if Warn_On_Obsolescent_Feature then
+                  Error_Msg_SC
+                    ("use of ""'!"" is an obsolescent feature (RM J.2(2))?");
+                  Error_Msg_SC ("\use ""'|"" instead?");
+               end if;
+            end if;
+
          when others =>
             null;
       end case;
@@ -430,13 +482,4 @@ package body Scn is
       Set_Chars (Token_Node, Token_Name);
    end Scan_Reserved_Identifier;
 
-   ---------------------------
-   -- Set_Obsolescent_Check --
-   ---------------------------
-
-   procedure Set_Obsolescent_Check (Value : Boolean) is
-   begin
-      Obsolescent_Check_Flag := Value;
-   end Set_Obsolescent_Check;
-
 end Scn;
index eb6be5e..ea7b22b 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2008, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2010, 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- --
@@ -47,15 +47,7 @@ package Scn is
    --  Determines the casing style of the current token, which is
    --  either a keyword or an identifier. See also package Casing.
 
-   procedure Obsolescent_Check (S : Source_Ptr);
-   --  Called to handle pragma restrictions check for usage of obsolescent
-   --  character replacements during the scan.
-
-   procedure Set_Obsolescent_Check (Value : Boolean);
-   --  Activate or not obsolescent check
-
    procedure Post_Scan;
-   pragma Inline (Post_Scan);
    --  Create nodes for tokens: Char_Literal, Identifier, Real_Literal,
    --  Integer_Literal, String_Literal and Operator_Symbol.
 
@@ -75,13 +67,12 @@ package Scn is
    --  generic package Scng with routines appropriate to the compiler
 
    package Scanner is new Scng
-     (Post_Scan         => Post_Scan,
-      Error_Msg         => Error_Msg,
-      Error_Msg_S       => Error_Msg_S,
-      Error_Msg_SC      => Error_Msg_SC,
-      Error_Msg_SP      => Error_Msg_SP,
-      Obsolescent_Check => Obsolescent_Check,
-      Style             => Style.Style_Inst);
+     (Post_Scan    => Post_Scan,
+      Error_Msg    => Error_Msg,
+      Error_Msg_S  => Error_Msg_S,
+      Error_Msg_SC => Error_Msg_SC,
+      Error_Msg_SP => Error_Msg_SP,
+      Style        => Style.Style_Inst);
 
    procedure Scan renames Scanner.Scan;
    --  Scan scans out the next token, and advances the scan state accordingly
index d4005b4..bc34eab 100644 (file)
@@ -516,6 +516,7 @@ package body Scng is
          Base := 10;
          UI_Base := Uint_10;
          UI_Int_Value := Uint_0;
+         Based_Literal_Uses_Colon := False;
          Scale := 0;
          Scan_Integer;
          Point_Scanned := False;
@@ -568,20 +569,14 @@ package body Scng is
                          or else
                        Source (Scan_Ptr + 1) in 'a' .. 'z'))
          then
-            if C = ':' then
-               Obsolescent_Check (Scan_Ptr);
-
-               if Warn_On_Obsolescent_Feature then
-                  Error_Msg_S
-                    ("use of "":"" is an obsolescent feature (RM J.2(3))?");
-                  Error_Msg_S ("\use ""'#"" instead?");
-               end if;
-            end if;
-
             Accumulate_Checksum (C);
             Base_Char := C;
             UI_Base := UI_Int_Value;
 
+            if Base_Char = ':' then
+               Based_Literal_Uses_Colon := True;
+            end if;
+
             if UI_Base < 2 or else UI_Base > 16 then
                Error_Msg_SC ("base not 2-16");
                UI_Base := Uint_16;
@@ -753,7 +748,6 @@ package body Scng is
          end if;
 
          Accumulate_Token_Checksum;
-
          return;
       end Nlit;
 
@@ -1579,24 +1573,9 @@ package body Scng is
             end if;
          end Minus_Case;
 
-         --  Double quote starting a string literal
-
-         when '"' =>
-            Slit;
-            Post_Scan;
-            return;
-
-         --  Percent starting a string literal
-
-         when '%' =>
-            Obsolescent_Check (Token_Ptr);
-
-            if Warn_On_Obsolescent_Feature then
-               Error_Msg_S
-                 ("use of ""'%"" is an obsolescent feature (RM J.2(4))?");
-               Error_Msg_S ("\use """""" instead?");
-            end if;
+         --  Double quote or percent starting a string literal
 
+         when '"' | '%' =>
             Slit;
             Post_Scan;
             return;
@@ -1808,6 +1787,7 @@ package body Scng is
                   Style.Check_Vertical_Bar;
                end if;
 
+               Post_Scan;
                return;
             end if;
          end Vertical_Bar_Case;
@@ -1816,13 +1796,6 @@ package body Scng is
 
          when '!' => Exclamation_Case : begin
             Accumulate_Checksum ('!');
-            Obsolescent_Check (Token_Ptr);
-
-            if Warn_On_Obsolescent_Feature then
-               Error_Msg_S
-                 ("use of ""'!"" is an obsolescent feature (RM J.2(2))?");
-               Error_Msg_S ("\use ""'|"" instead?");
-            end if;
 
             if Source (Scan_Ptr + 1) = '=' then
                Error_Msg_S -- CODEFIX
@@ -1834,6 +1807,7 @@ package body Scng is
             else
                Scan_Ptr := Scan_Ptr + 1;
                Token := Tok_Vertical_Bar;
+               Post_Scan;
                return;
             end if;
          end Exclamation_Case;
index 1988e26..d903511 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2010, 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- --
@@ -33,9 +33,10 @@ with Types;  use Types;
 
 generic
    with procedure Post_Scan;
-   --  Procedure called by Scan for the following tokens:
-   --  Tok_Char_Literal, Tok_Identifier, Tok_Real_Literal, Tok_Real_Literal,
-   --  Tok_Integer_Literal, Tok_String_Literal, Tok_Operator_Symbol.
+   --  Procedure called by Scan for the following tokens: Tok_Char_Literal,
+   --  Tok_Identifier, Tok_Real_Literal, Tok_Real_Literal, Tok_Integer_Literal,
+   --  Tok_String_Literal, Tok_Operator_Symbol, and Tok_Vertical_Bar. Used to
+   --  build Token_Node and also check for obsolescent features.
 
    with procedure Error_Msg (Msg : String; Flag_Location : Source_Ptr);
    --  Output a message at specified location
@@ -49,10 +50,6 @@ generic
    with procedure Error_Msg_SP (Msg : String);
    --  Output a message at the start of the previous token
 
-   with procedure Obsolescent_Check (S : Source_Ptr);
-   --  Called when one of the obsolescent character replacements is
-   --  used with S pointing to the character in question.
-
    with package Style is new Styleg
      (Error_Msg, Error_Msg_S, Error_Msg_SC, Error_Msg_SP);
    --  Instantiation of Styleg with the same error reporting routines
index 5159186..d296597 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2010, 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- --
@@ -530,12 +530,9 @@ package body Sinput.L is
                Save_Style_Check := Opt.Style_Check;
                Opt.Style_Check := False;
 
-               --  Make sure that there will be no check of pragma Restrictions
-               --  for obsolescent features while preprocessing the source.
+               --  The actual preprocessing step
 
-               Scn.Set_Obsolescent_Check (False);
                Preprocess (Modified);
-               Scn.Set_Obsolescent_Check (True);
 
                --  Reset the scanner to its standard behavior, and restore the
                --  Style_Checks flag.