aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRobert Dewar <dewar@gnat.com>2001-10-31 00:54:36 +0000
committerGeert Bosch <bosch@gcc.gnu.org>2001-10-31 01:54:36 +0100
commit04a1b79c3999ec7b2c0d3cbfa9f924baab709b1e (patch)
tree2494f570aaeb3001f13173309185d4891cd9c34b /gcc
parent81fa2d3951b2d950802c37a5cf03fa23ad9d8789 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/ada/style.adb63
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