Commit c9f95e4c by Arnaud Charlet

[multiple changes]

2014-10-10  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications, Library_Unit_Aspects):
	Aspect specification is legal on a local instantiation of a
	library-level generic unit.

2014-10-10  Gary Dismukes  <dismukes@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Set Front_End_Inlining
	if inlining has been enabled via -gnatn and the target is not GCC.

2014-10-10  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): Freezing a subprogram does
	not always freeze its profile.	In particular, an attribute
	reference that takes the access type does not freeze the types
	of the formals.

From-SVN: r216090
parent 32a21096
2014-10-10 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications, Library_Unit_Aspects):
Aspect specification is legal on a local instantiation of a
library-level generic unit.
2014-10-10 Gary Dismukes <dismukes@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Set Front_End_Inlining
if inlining has been enabled via -gnatn and the target is not GCC.
2014-10-10 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_Entity): Freezing a subprogram does
not always freeze its profile. In particular, an attribute
reference that takes the access type does not freeze the types
of the formals.
2014-10-10 Robert Dewar <dewar@adacore.com>
* errout.adb (Adjust_Name_Case): New procedure.
......
......@@ -4004,7 +4004,17 @@ package body Freeze is
-- any extra formal parameters are created since we now know
-- whether the subprogram will use a foreign convention.
if not Is_Internal (E) then
-- In Ada 2012, freezing a subprogram does not always freeze
-- the corresponding profile (see AI05-019). An attribute
-- reference is not a freezing point of the profile.
-- Other constructs that should not freeze ???
if Ada_Version > Ada_2005
and then Nkind (N) = N_Attribute_Reference
then
null;
elsif not Is_Internal (E) then
declare
F_Type : Entity_Id;
R_Type : Entity_Id;
......
......@@ -583,6 +583,12 @@ procedure Gnat1drv is
end if;
end if;
-- Treat -gnatn as equivalent to -gnatN for non-GCC targets
if Inline_Active and then not Front_End_Inlining then
Front_End_Inlining := VM_Target /= No_VM or else AAMP_On_Target;
end if;
-- Set back end inlining indication
Back_End_Inlining :=
......
......@@ -3018,12 +3018,15 @@ package body Sem_Ch13 is
-- of a package declaration, the pragma needs to be inserted
-- in the list of declarations for the associated package.
-- There is no issue of visibility delay for these aspects.
-- Aspect is legal on a local instantiation of a library-
-- level generic unit.
if A_Id in Library_Unit_Aspects
and then
Nkind_In (N, N_Package_Declaration,
N_Generic_Package_Declaration)
and then Nkind (Parent (N)) /= N_Compilation_Unit
and then not Is_Generic_Instance (Defining_Entity (N))
then
Error_Msg_N
("incorrect context for library unit aspect&", Id);
......
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