Commit 54bb89ca by Arnaud Charlet

[multiple changes]

2013-01-29  Robert Dewar  <dewar@adacore.com>

	* a-calend-vms.adb: Minor comment fix.

2013-01-29  Robert Dewar  <dewar@adacore.com>

	* mlib-utl.adb, gnatlink.adb: Avoid reference to ASCII.Back_Slash
	because of casing issues.
	* sem_util.ads: Minor comment fix.
	* style.adb (Check_Identifier): Set proper casing for entities
	in ASCII.
	* styleg.adb: Minor comment improvement.
	* stylesw.ads (Style_Check_Standard): Fix bad comments.

2013-01-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb: Add the grammar for pragmas Abstract_State and Global.
	(Analyze_Pragma): Push the scope of the related subprogram and install
	its formals once before starting the analysis of the [moded] global
	list.

2013-01-29  Pascal Obry  <obry@adacore.com>

	* prj-proc.adb (Process_Expression_Variable_Decl): Always handle
	relative paths in Project_Path as relative to the aggregate
	project location. Note that this was what was documented.

2013-01-29  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb: For "gnat stub -P ...", do not check the naming
	scheme for Ada, when Ada is not a language for the project.

From-SVN: r195539
parent 2808600b
2013-01-29 Robert Dewar <dewar@adacore.com>
* a-calend-vms.adb: Minor comment fix.
2013-01-29 Robert Dewar <dewar@adacore.com>
* mlib-utl.adb, gnatlink.adb: Avoid reference to ASCII.Back_Slash
because of casing issues.
* sem_util.ads: Minor comment fix.
* style.adb (Check_Identifier): Set proper casing for entities
in ASCII.
* styleg.adb: Minor comment improvement.
* stylesw.ads (Style_Check_Standard): Fix bad comments.
2013-01-29 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb: Add the grammar for pragmas Abstract_State and Global.
(Analyze_Pragma): Push the scope of the related subprogram and install
its formals once before starting the analysis of the [moded] global
list.
2013-01-29 Pascal Obry <obry@adacore.com>
* prj-proc.adb (Process_Expression_Variable_Decl): Always handle
relative paths in Project_Path as relative to the aggregate
project location. Note that this was what was documented.
2013-01-29 Vincent Celier <celier@adacore.com>
* gnatcmd.adb: For "gnat stub -P ...", do not check the naming
scheme for Ada, when Ada is not a language for the project.
2013-01-29 Ed Schonberg <schonberg@adacore.com> 2013-01-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Subtype_Declaration): Inherit * sem_ch3.adb (Analyze_Subtype_Declaration): Inherit
......
...@@ -49,7 +49,7 @@ package body Ada.Calendar is ...@@ -49,7 +49,7 @@ package body Ada.Calendar is
-- on various targets, a system independent model is incorporated into -- on various targets, a system independent model is incorporated into
-- Ada.Calendar. The idea behind the design is to encapsulate all target -- Ada.Calendar. The idea behind the design is to encapsulate all target
-- dependent machinery in a single package, thus providing a uniform -- dependent machinery in a single package, thus providing a uniform
-- pragma Import to all existing and any potential children. -- interface to all existing and potential children.
-- package Ada.Calendar -- package Ada.Calendar
-- procedure Split (5 parameters) -------+ -- procedure Split (5 parameters) -------+
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1996-2012, Free Software Foundation, Inc. -- -- Copyright (C) 1996-2013, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -2477,7 +2477,9 @@ begin ...@@ -2477,7 +2477,9 @@ begin
-- the file name ends with the spec suffix, then indicate to -- the file name ends with the spec suffix, then indicate to
-- gnatstub the name of the body file with a -o switch. -- gnatstub the name of the body file with a -o switch.
if not Is_Standard_GNAT_Naming (Lang.Config.Naming_Data) then if Lang /= No_Language_Index
and then not Is_Standard_GNAT_Naming (Lang.Config.Naming_Data)
then
if File_Index /= 0 then if File_Index /= 0 then
declare declare
Spec : constant String := Spec : constant String :=
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1996-2012, Free Software Foundation, Inc. -- -- Copyright (C) 1996-2013, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -904,6 +904,7 @@ procedure Gnatlink is ...@@ -904,6 +904,7 @@ procedure Gnatlink is
procedure Write_RF (S : String) is procedure Write_RF (S : String) is
Success : Boolean := True; Success : Boolean := True;
Back_Slash : constant Character := '\';
begin begin
-- If a GNU response file is used, space and backslash need to be -- If a GNU response file is used, space and backslash need to be
...@@ -915,7 +916,7 @@ procedure Gnatlink is ...@@ -915,7 +916,7 @@ procedure Gnatlink is
if Using_GNU_response_file then if Using_GNU_response_file then
for J in S'Range loop for J in S'Range loop
if S (J) = ' ' or else S (J) = '\' then if S (J) = ' ' or else S (J) = '\' then
if Write (Tname_FD, ASCII.BACK_SLASH'Address, 1) /= 1 then if Write (Tname_FD, Back_Slash'Address, 1) /= 1 then
Success := False; Success := False;
end if; end if;
end if; end if;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 2002-2012, AdaCore -- -- Copyright (C) 2002-2013, AdaCore --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -397,6 +397,7 @@ package body MLib.Utl is ...@@ -397,6 +397,7 @@ package body MLib.Utl is
procedure Write_RF (S : String) is procedure Write_RF (S : String) is
Success : Boolean := True; Success : Boolean := True;
Back_Slash : constant Character := '\';
begin begin
-- If a GNU response file is used, space and backslash need to be -- If a GNU response file is used, space and backslash need to be
...@@ -408,7 +409,7 @@ package body MLib.Utl is ...@@ -408,7 +409,7 @@ package body MLib.Utl is
if Using_GNU_response_file then if Using_GNU_response_file then
for J in S'Range loop for J in S'Range loop
if S (J) = ' ' or else S (J) = '\' then if S (J) = ' ' or else S (J) = '\' then
if Write (Tname_FD, ASCII.BACK_SLASH'Address, 1) /= 1 then if Write (Tname_FD, Back_Slash'Address, 1) /= 1 then
Success := False; Success := False;
end if; end if;
end if; end if;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 2001-2012, Free Software Foundation, Inc. -- -- Copyright (C) 2001-2013, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -2067,8 +2067,13 @@ package body Prj.Proc is ...@@ -2067,8 +2067,13 @@ package body Prj.Proc is
while Val /= Nil_String loop while Val /= Nil_String loop
Prj.Env.Add_Directories Prj.Env.Add_Directories
(Child_Env.Project_Path, (Child_Env.Project_Path,
Normalize_Pathname
(Name =>
Get_Name_String Get_Name_String
(Shared.String_Elements.Table (Val).Value)); (Shared.String_Elements.Table (Val).Value),
Directory =>
Get_Name_String
(Project.Directory.Display_Name)));
Val := Shared.String_Elements.Table (Val).Next; Val := Shared.String_Elements.Table (Val).Next;
end loop; end loop;
end; end;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- -- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -6646,7 +6646,22 @@ package body Sem_Prag is ...@@ -6646,7 +6646,22 @@ package body Sem_Prag is
-- Abstract_State -- -- Abstract_State --
-------------------- --------------------
-- ??? no formal grammar available yet -- pragma Abstract_State (ABSTRACT_STATE_LIST)
-- ABSTRACT_STATE_LIST ::=
-- null
-- | STATE_NAME_WITH_PROPERTIES {, STATE_NAME_WITH_PROPERTIES}
-- STATE_NAME_WITH_PROPERTIES ::=
-- STATE_NAME
-- | (STATE_NAME with PROPERTY_LIST)
-- PROPERTY_LIST ::= PROPERTY {, PROPERTY}
-- PROPERTY ::= SIMPLE_PROPERTY
-- | NAME_VALUE_PROPERTY
-- SIMPLE_PROPERTY ::= IDENTIFIER
-- NAME_VALUE_PROPERTY ::= IDENTIFIER => EXPRESSION
-- STATE_NAME ::= DEFINING_IDENTIFIER
when Pragma_Abstract_State => Abstract_State : declare when Pragma_Abstract_State => Abstract_State : declare
Pack_Id : Entity_Id; Pack_Id : Entity_Id;
...@@ -9954,7 +9969,16 @@ package body Sem_Prag is ...@@ -9954,7 +9969,16 @@ package body Sem_Prag is
-- Global -- -- Global --
------------ ------------
-- ??? no formal grammar pragma available yet -- pragma Global (GLOBAL_SPECIFICATION)
-- GLOBAL_SPECIFICATION ::= MODED_GLOBAL_LIST {, MODED_GLOBAL_LIST}
-- | GLOBAL_LIST
-- | null
-- MODED_GLOBAL_LIST ::= MODE_SELECTOR => GLOBAL_LIST
-- MODE_SELECTOR ::= Input | Output | In_Out | Contract_In
-- GLOBAL_LIST ::= GLOBAL_ITEM
-- | (GLOBAL_ITEM {, GLOBAL_ITEM})
-- GLOBAL_ITEM ::= NAME
when Pragma_Global => Global : declare when Pragma_Global => Global : declare
Subp_Id : Entity_Id; Subp_Id : Entity_Id;
...@@ -10054,14 +10078,7 @@ package body Sem_Prag is ...@@ -10054,14 +10078,7 @@ package body Sem_Prag is
return; return;
end if; end if;
-- Ensure that the formal parameters are visible when
-- processing an item. This falls out of the general rule
-- of aspects pertaining to subprogram declarations.
Push_Scope (Subp_Id);
Install_Formals (Subp_Id);
Analyze (Item); Analyze (Item);
Pop_Scope;
if Is_Entity_Name (Item) then if Is_Entity_Name (Item) then
Id := Entity (Item); Id := Entity (Item);
...@@ -10302,7 +10319,16 @@ package body Sem_Prag is ...@@ -10302,7 +10319,16 @@ package body Sem_Prag is
-- error messages. -- error messages.
else else
-- Ensure that the formal parameters are visible when
-- processing an item. This falls out of the general rule of
-- aspects pertaining to subprogram declarations.
Push_Scope (Subp_Id);
Install_Formals (Subp_Id);
Analyze_Global_List (List); Analyze_Global_List (List);
Pop_Scope;
end if; end if;
end Global; end Global;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- S p e c -- -- S p e c --
-- -- -- --
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- -- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -1079,7 +1079,7 @@ package Sem_Util is ...@@ -1079,7 +1079,7 @@ package Sem_Util is
-- scope that is not a block or a package). This is used when the -- scope that is not a block or a package). This is used when the
-- sequential flow-of-control assumption is violated (occurrence of a -- sequential flow-of-control assumption is violated (occurrence of a
-- label, head of a loop, or start of an exception handler). The effect of -- label, head of a loop, or start of an exception handler). The effect of
-- the call is to clear the Constant_Value field (but we do not need to -- the call is to clear the Current_Value field (but we do not need to
-- clear the Is_True_Constant flag, since that only gets reset if there -- clear the Is_True_Constant flag, since that only gets reset if there
-- really is an assignment somewhere in the entity scope). This procedure -- really is an assignment somewhere in the entity scope). This procedure
-- also calls Kill_All_Checks, since this is a special case of needing to -- also calls Kill_All_Checks, since this is a special case of needing to
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- -- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -94,7 +94,9 @@ package body Style is ...@@ -94,7 +94,9 @@ package body Style is
---------------------- ----------------------
-- In check references mode (-gnatyr), identifier uses must be cased -- In check references mode (-gnatyr), identifier uses must be cased
-- the same way as the corresponding identifier declaration. -- the same way as the corresponding identifier declaration. If standard
-- references are checked (-gnatyn), then identifiers from Standard must
-- be cased as in the Reference Manual.
procedure Check_Identifier procedure Check_Identifier
(Ref : Node_Or_Entity_Id; (Ref : Node_Or_Entity_Id;
...@@ -197,10 +199,30 @@ package body Style is ...@@ -197,10 +199,30 @@ package body Style is
if Entity (Ref) = Standard_ASCII then if Entity (Ref) = Standard_ASCII then
Cas := All_Upper_Case; Cas := All_Upper_Case;
-- Special names in ASCII are also all upper case -- Special handling for names in package ASCII
elsif Sdef = Standard_ASCII_Location then elsif Sdef = Standard_ASCII_Location then
declare
Nam : constant String := Get_Name_String (Chars (Def));
begin
-- Bar is mixed case
if Nam = "bar" then
Cas := Mixed_Case;
-- All names longer than 4 characters are mixed case
elsif Nam'Length > 4 then
Cas := Mixed_Case;
-- All names shorter than 4 characters (other than Bar,
-- which we already tested for specially) are Upper case.
else
Cas := All_Upper_Case; Cas := All_Upper_Case;
end if;
end;
-- All other entities are in mixed case -- All other entities are in mixed case
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- B o d y -- -- B o d y --
-- -- -- --
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- -- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -611,7 +611,7 @@ package body Styleg is ...@@ -611,7 +611,7 @@ package body Styleg is
-- Check_Indentation -- -- Check_Indentation --
----------------------- -----------------------
-- In check indentation mode (-gnatyn for n a digit), a new statement or -- In check indentation mode (-gnaty? for ? a digit), a new statement or
-- declaration is required to start in a column that is a multiple of the -- declaration is required to start in a column that is a multiple of the
-- indentation amount. -- indentation amount.
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
-- -- -- --
-- S p e c -- -- S p e c --
-- -- -- --
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- -- Copyright (C) 1992-2013, Free Software Foundation, Inc. --
-- -- -- --
-- GNAT is free software; you can redistribute it and/or modify it under -- -- 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- -- -- terms of the GNU General Public License as published by the Free Soft- --
...@@ -149,7 +149,7 @@ package Stylesw is ...@@ -149,7 +149,7 @@ package Stylesw is
-- is not allowed. -- is not allowed.
Style_Check_Indentation : Column_Number range 0 .. 9 := 0; Style_Check_Indentation : Column_Number range 0 .. 9 := 0;
-- This can be set non-zero by using the -gnatyn (n a digit) switch. If -- This can be set non-zero by using the -gnaty? (? a digit) switch. If
-- it is non-zero it activates indentation checking with the indicated -- it is non-zero it activates indentation checking with the indicated
-- indentation value. A value of zero turns off checking. The requirement -- indentation value. A value of zero turns off checking. The requirement
-- is that any new statement, line comment, declaration or keyword such -- is that any new statement, line comment, declaration or keyword such
...@@ -217,8 +217,9 @@ package Stylesw is ...@@ -217,8 +217,9 @@ package Stylesw is
Style_Check_Standard : Boolean := False; Style_Check_Standard : Boolean := False;
-- This can be set True by using the -gnatyn switch. If it is True, then -- This can be set True by using the -gnatyn switch. If it is True, then
-- any references to names in Standard have to be in mixed case mode (e.g. -- any references to names in Standard have to be cased in a manner that
-- Integer, Boolean). -- is consistent with the Ada RM (usually Mixed case, as in Long_Integer)
-- but there are some exceptions (e.g. NUL, ASCII).
Style_Check_Tokens : Boolean := False; Style_Check_Tokens : Boolean := False;
-- This can be set True by using the -gnatyt switch. If it is True, then -- This can be set True by using the -gnatyt switch. If it is True, then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment