[multiple changes]

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Rep_Item_Too_Late): Better error message for
	an illegal aspect that freezes the entity to which it applies.

2016-04-20  Bob Duff  <duff@adacore.com>

	* a-stwibo.ads, a-stzbou.ads
	("="): Add overriding keyword before function to avoid crash when
	compiler is called with -gnatyO (check overriding indicators).

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Check_Policy):  If this
	is a configuration pragma and it uses the ARG syntax, insert
	the rewritten pragma after the current one rather than using
	Insert_Actions.

2016-04-20  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Backend_Processing_Possible): Add handling of
	C back-end.

From-SVN: r235253
This commit is contained in:
Arnaud Charlet 2016-04-20 12:10:32 +02:00
parent b83dd5ecea
commit 7e22a38c2f
6 changed files with 69 additions and 9 deletions

View File

@ -1,3 +1,26 @@
2016-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Rep_Item_Too_Late): Better error message for
an illegal aspect that freezes the entity to which it applies.
2016-04-20 Bob Duff <duff@adacore.com>
* a-stwibo.ads, a-stzbou.ads
("="): Add overriding keyword before function to avoid crash when
compiler is called with -gnatyO (check overriding indicators).
2016-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Check_Policy): If this
is a configuration pragma and it uses the ARG syntax, insert
the rewritten pragma after the current one rather than using
Insert_Actions.
2016-04-20 Arnaud Charlet <charlet@adacore.com>
* exp_aggr.adb (Backend_Processing_Possible): Add handling of
C back-end.
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
* s-imgllu.adb, sem_util.adb, s-imgint.adb, s-imguns.adb,

View File

@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 1992-2010, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2015, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@ -609,7 +609,7 @@ package Ada.Strings.Wide_Bounded is
High : Natural)
renames Super_Slice;
function "="
overriding function "="
(Left : Bounded_Wide_String;
Right : Bounded_Wide_String) return Boolean
renames Equal;

View File

@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 1992-2010, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2015, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@ -618,7 +618,7 @@ package Ada.Strings.Wide_Wide_Bounded is
High : Natural)
renames Super_Slice;
function "="
overriding function "="
(Left : Bounded_Wide_Wide_String;
Right : Bounded_Wide_Wide_String) return Boolean
renames Equal;

View File

@ -545,6 +545,8 @@ package body Exp_Aggr is
-- 10. No controlled actions need to be generated for components
-- 11. When generating C code, N must be part of a N_Object_Declaration
function Backend_Processing_Possible (N : Node_Id) return Boolean is
Typ : constant Entity_Id := Etype (N);
-- Typ is the correct constrained array subtype of the aggregate
@ -569,6 +571,17 @@ package body Exp_Aggr is
return False;
end if;
-- Checks 11: (part of an object declaration)
if Generate_C_Code
and then Nkind (Parent (N)) /= N_Object_Declaration
and then
(Nkind (Parent (N)) /= N_Qualified_Expression
or else Nkind (Parent (Parent (N))) /= N_Object_Declaration)
then
return False;
end if;
-- Checks on components
-- Recurse to check subaggregates, which may appear in qualified

View File

@ -12286,6 +12286,18 @@ package body Sem_Ch13 is
and then Comes_From_Source (T)
then
-- A self-referential aspect is illegal if it forces freezing the
-- entity before the corresponding pragma has been analyzed.
if Nkind_In (N, N_Attribute_Definition_Clause, N_Pragma)
and then From_Aspect_Specification (N)
then
Error_Msg_NE
("aspect specification causes premature freezing of&", T, N);
Set_Has_Delayed_Freeze (T, False);
return True;
end if;
Too_Late;
S := First_Subtype (T);

View File

@ -12504,9 +12504,10 @@ package body Sem_Prag is
else
declare
Arg : Node_Id;
Argx : Node_Id;
LocP : Source_Ptr;
Arg : Node_Id;
Argx : Node_Id;
LocP : Source_Ptr;
New_P : Node_Id;
begin
Arg := Arg1;
@ -12526,7 +12527,7 @@ package body Sem_Prag is
-- Construct equivalent old form syntax Check_Policy
-- pragma and insert it to get remaining checks.
Insert_Action (N,
New_P :=
Make_Pragma (LocP,
Chars => Name_Check_Policy,
Pragma_Argument_Associations => New_List (
@ -12534,9 +12535,20 @@ package body Sem_Prag is
Expression =>
Make_Identifier (LocP, Chars (Arg))),
Make_Pragma_Argument_Association (Sloc (Argx),
Expression => Argx))));
Expression => Argx)));
Arg := Next (Arg);
-- For a configuration pragma, insert old form in
-- the corresponding file.
if Is_Configuration_Pragma then
Insert_After (N, New_P);
Analyze (New_P);
else
Insert_Action (N, New_P);
end if;
end loop;
-- Rewrite original Check_Policy pragma to null, since we