[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
This commit is contained in:
parent
32a2109603
commit
c9f95e4c25
4 changed files with 38 additions and 1 deletions
|
@ -1,3 +1,21 @@
|
|||
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);
|
||||
|
|
Loading…
Add table
Reference in a new issue