diff options
author | Robert Dewar <dewar@gnat.com> | 2001-10-31 00:54:36 +0000 |
---|---|---|
committer | Geert Bosch <bosch@gcc.gnu.org> | 2001-10-31 01:54:36 +0100 |
commit | 04a1b79c3999ec7b2c0d3cbfa9f924baab709b1e (patch) | |
tree | 2494f570aaeb3001f13173309185d4891cd9c34b /gcc | |
parent | 81fa2d3951b2d950802c37a5cf03fa23ad9d8789 (diff) | |
download | gcc-04a1b79c3999ec7b2c0d3cbfa9f924baab709b1e.zip gcc-04a1b79c3999ec7b2c0d3cbfa9f924baab709b1e.tar.gz gcc-04a1b79c3999ec7b2c0d3cbfa9f924baab709b1e.tar.bz2 |
* style.adb:
(Check_Identifier): Rewrite circuit to be compatible with use of letters
in the upper half of ASCII.
(Check_Identifier): Minor reformatting
From-SVN: r46667
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ada/style.adb | 63 |
2 files changed, 49 insertions, 21 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index d088d1e..61a2635 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,10 @@ +2001-10-30 Robert Dewar <dewar@gnat.com> + + * style.adb: + (Check_Identifier): Rewrite circuit to be compatible with use of letters + in the upper half of ASCII. + (Check_Identifier): Minor reformatting + 2001-10-30 Geert Bosch <bosch@gnat.com> * (Associated_Node, Set_Associated_Node): Do not check for diff --git a/gcc/ada/style.adb b/gcc/ada/style.adb index 638333c..9b74d61 100644 --- a/gcc/ada/style.adb +++ b/gcc/ada/style.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- $Revision: 1.48 $ +-- $Revision$ -- -- -- Copyright (C) 1992-2001 Free Software Foundation, Inc. -- -- -- @@ -409,10 +409,10 @@ package body Style is (Ref : Node_Or_Entity_Id; Def : Node_Or_Entity_Id) is - SRef : Source_Ptr := Sloc (Ref); - SDef : Source_Ptr := Sloc (Def); - TRef : Source_Buffer_Ptr; - TDef : Source_Buffer_Ptr; + Sref : Source_Ptr := Sloc (Ref); + Sdef : Source_Ptr := Sloc (Def); + Tref : Source_Buffer_Ptr; + Tdef : Source_Buffer_Ptr; Nlen : Nat; Cas : Casing_Type; @@ -429,45 +429,66 @@ package body Style is -- Check same casing if we are checking references if Style_Check_References then - TRef := Source_Text (Get_Source_File_Index (SRef)); - TDef := Source_Text (Get_Source_File_Index (SDef)); + Tref := Source_Text (Get_Source_File_Index (Sref)); + Tdef := Source_Text (Get_Source_File_Index (Sdef)); -- Ignore operator name case completely. This also catches the -- case of where one is an operator and the other is not. This -- is a phenomenon from rewriting of operators as functions, -- and is to be ignored. - if TRef (SRef) = '"' or else TDef (SDef) = '"' then + if Tref (Sref) = '"' or else Tdef (Sdef) = '"' then return; else - for J in 1 .. Length_Of_Name (Chars (Ref)) loop - if TRef (SRef) /= TDef (SDef) then - Error_Msg_Node_1 := Def; - Error_Msg_Sloc := Sloc (Def); - Error_Msg - ("(style) bad casing of & declared#", SRef); + while Tref (Sref) = Tdef (Sdef) loop + + -- If end of identifier, all done + + if not Identifier_Char (Tref (Sref)) then return; - end if; - SRef := SRef + 1; - SDef := SDef + 1; + -- Otherwise loop continues + + else + Sref := Sref + 1; + Sdef := Sdef + 1; + end if; end loop; + + -- Fall through loop when mismatch between identifiers + -- If either identifier is not terminated, error. + + if Identifier_Char (Tref (Sref)) + or else + Identifier_Char (Tdef (Sdef)) + then + Error_Msg_Node_1 := Def; + Error_Msg_Sloc := Sloc (Def); + Error_Msg + ("(style) bad casing of & declared#", Sref); + return; + + -- Else end of identifiers, and they match + + else + return; + end if; end if; end if; -- Case of definition in package Standard - elsif SDef = Standard_Location then + elsif Sdef = Standard_Location then -- Check case of identifiers in Standard if Style_Check_Standard then - TRef := Source_Text (Get_Source_File_Index (SRef)); + Tref := Source_Text (Get_Source_File_Index (Sref)); -- Ignore operators - if TRef (SRef) = '"' then + if Tref (Sref) = '"' then null; -- Special case of ASCII @@ -491,7 +512,7 @@ package body Style is Nlen := Length_Of_Name (Chars (Ref)); if Determine_Casing - (TRef (SRef .. SRef + Source_Ptr (Nlen) - 1)) = Cas + (Tref (Sref .. Sref + Source_Ptr (Nlen) - 1)) = Cas then null; else |