[multiple changes]

2010-10-07  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Attribute_Definition_Clause, case
	Component_Size): Complete previous change.

2010-10-07  Vincent Celier  <celier@adacore.com>

	* scng.adb (Scan): Call Accumulate_Token_Checksum for Tok_Identifier,
	even for keywords, to avoid having the checksum to depend on the Ada
	version.

2010-10-07  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb, sem_ch12.adb, sem_ch6.adb, par-ch5.adb,
	exp_ch3.adb: Minor reformatting.

From-SVN: r165106
This commit is contained in:
Arnaud Charlet 2010-10-07 15:26:02 +02:00
parent ffdb3d3bfc
commit feab35499e
8 changed files with 45 additions and 17 deletions

View File

@ -1,3 +1,19 @@
2010-10-07 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Analyze_Attribute_Definition_Clause, case
Component_Size): Complete previous change.
2010-10-07 Vincent Celier <celier@adacore.com>
* scng.adb (Scan): Call Accumulate_Token_Checksum for Tok_Identifier,
even for keywords, to avoid having the checksum to depend on the Ada
version.
2010-10-07 Gary Dismukes <dismukes@adacore.com>
* sem_aggr.adb, sem_ch12.adb, sem_ch6.adb, par-ch5.adb,
exp_ch3.adb: Minor reformatting.
2010-10-07 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case

View File

@ -230,7 +230,7 @@ package body Exp_Ch3 is
(Typ : Entity_Id;
Eq_Name : Name_Id) return Node_Id;
-- Build the body of a primitive equality operation for a tagged record
-- type, or in Ada2012 for any record type that has components with a
-- type, or in Ada 2012 for any record type that has components with a
-- user-defined equality. Factored out of Predefined_Primitive_Bodies.
function Make_Eq_Case
@ -6174,7 +6174,7 @@ package body Exp_Ch3 is
-- In the non-tagged case, ever since Ada83 an equality function must
-- be provided for variant records that are not unchecked unions.
-- In Ada2012 the equality function composes, and thus must be built
-- In Ada 2012 the equality function composes, and thus must be built
-- explicitly just as for tagged records.
elsif Has_Discriminants (Def_Id)

View File

@ -84,7 +84,7 @@ package body Ch5 is
---------------------------------
-- SEQUENCE_OF_STATEMENTS ::= STATEMENT {STATEMENT} {LABEL}
-- Note: the final label is an Ada2012 addition.
-- Note: the final label is an Ada 2012 addition.
-- STATEMENT ::=
-- {LABEL} SIMPLE_STATEMENT | {LABEL} COMPOUND_STATEMENT
@ -150,12 +150,12 @@ package body Ch5 is
-- is required. It is initialized from the Sreq flag, and modified as
-- statements are scanned (a statement turns it off, and a label turns
-- it back on again since a statement must follow a label).
-- Note : this final requirement is lifted in Ada2012.
-- Note : this final requirement is lifted in Ada 2012.
Statement_Seen : Boolean;
-- In Ada2012 a label can end a sequence of statements, but the sequence
-- cannot contain only labels. This flag is set whenever a label is
-- encountered, to enforce this rule at the end of a sequence.
-- In Ada 2012, a label can end a sequence of statements, but the
-- sequence cannot contain only labels. This flag is set whenever a
-- label is encountered, to enforce this rule at the end of a sequence.
Declaration_Found : Boolean := False;
-- This flag is set True if a declaration is encountered, so that the
@ -773,7 +773,7 @@ package body Ch5 is
Statement_Required := False;
-- Label starting with << which must precede real statement
-- Note: in Ada2012, the label may end the sequence.
-- Note: in Ada 2012, the label may end the sequence.
when Tok_Less_Less =>
if Present (Last (Statement_List))

View File

@ -2409,6 +2409,12 @@ package body Scng is
end if;
end if;
-- We will assume it is an identifier, not a keyword, so that the
-- checksum is independent of the Ada version.
Token := Tok_Identifier;
Accumulate_Token_Checksum;
-- Here is where we check if it was a keyword
if Is_Keyword_Name (Token_Name) then
@ -2464,14 +2470,11 @@ package body Scng is
-- corresponding keyword.
Token_Name := No_Name;
Accumulate_Token_Checksum;
return;
-- It is an identifier after all
else
Token := Tok_Identifier;
Accumulate_Token_Checksum;
Post_Scan;
return;
end if;

View File

@ -3890,7 +3890,7 @@ package body Sem_Aggr is
elsif No (Typech) then
Typech := Base_Type (Etype (Component));
-- AI05-0199: In Ada2012, several components of anonymous
-- AI05-0199: In Ada 2012, several components of anonymous
-- access types can appear in a choice list, as long as the
-- designated types match.

View File

@ -9969,8 +9969,9 @@ package body Sem_Ch12 is
-- interface then the generic formal is not unless declared
-- explicitly so. If not declared limited, the actual cannot be
-- limited (see AI05-0087).
-- Even though this AI is a binding interpretation, we enable the
-- check only in Ada2012 mode, because this improper construct
-- check only in Ada 2012 mode, because this improper construct
-- shows up in user code and in existing B-tests.
if Is_Limited_Type (Act_T)

View File

@ -5864,7 +5864,7 @@ package body Sem_Ch6 is
Obj_Decl, Typ);
Error_Msg_N
("\an equality operator cannot be declared after this "
& "point ('R'M 4.5.2 (9.8)) (Ada2012))?", Obj_Decl);
& "point ('R'M 4.5.2 (9.8)) (Ada 2012))?", Obj_Decl);
exit;
end if;

View File

@ -5944,12 +5944,13 @@ package body Sem_Prag is
and then Nkind (Object_Definition (D)) =
N_Constrained_Array_Definition)
then
Ctyp := Component_Type (E);
-- The flag is set on the object, or on the base type
if Nkind (D) /= N_Object_Declaration then
E := Base_Type (E);
Ctyp := Component_Type (E);
else
Ctyp := Component_Type (Base_Type (Etype (E)));
end if;
Set_Has_Volatile_Components (E);
@ -9918,7 +9919,7 @@ package body Sem_Prag is
and then (Esize (Ctyp) = 8 or else
Esize (Ctyp) = 16 or else
Esize (Ctyp) = 32 or else
Esize (Ctyp) = 64)
Esize (Ctyp) >= 64)
then
Ignore := True;
@ -9931,6 +9932,13 @@ package body Sem_Prag is
or else Is_Atomic (Component_Type (Typ))
then
Error_Pragma ("cannot pack atomic components");
-- Warn for cases of packing non-atomic components of atomic
elsif Is_Atomic (Typ) then
Error_Msg_NE
("non-atomic components of type& may not be accessible "
& "by separate tasks?", N, Typ);
end if;
-- If we had an explicit component size given, then we do not