+2017-09-18 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * freeze.adb, sem_ch6.adb, sem_res.adb: Minor reformatting.
+
+2017-09-18 Piotr Trojanek <trojanek@adacore.com>
+
+ * einfo.ads (Is_Imported): Update comment, as this
+ routine also applies to constants.
+
+2017-09-18 Yannick Moy <moy@adacore.com>
+
+ * sem_util.adb (Find_Placement_In_State_Space): Allow generic package
+ holding state.
+
+2017-09-18 Justin Squirek <squirek@adacore.com>
+
+ * sem_prag.adb (Is_Non_Significant_Pragma_Reference): Change the
+ constant indication for Pragma_Linker_Section.
+
2017-09-18 Bob Duff <duff@adacore.com>
Alternate fix for PR ada/71358
-- Is_Imported (Flag24)
-- Defined in all entities. Set if the entity is imported. For now we
--- only allow the import of exceptions, functions, procedures, packages.
--- and variables. Exceptions, packages and types can only be imported in
--- the Java VM implementation, which is retired.
+-- only allow the import of exceptions, functions, procedures, packages,
+-- constants, and variables. Exceptions, packages, and types can only be
+-- imported in the Java VM implementation, which is retired.
-- Is_Incomplete_Or_Private_Type (synthesized)
-- Applies to all entities, true for private and incomplete types
if No (Extra_Formals (E)) then
Create_Extra_Formals (E);
end if;
+
Set_Mechanisms (E);
-- If this is convention Ada and a Valued_Procedure, that's odd
and then Is_Tagged_Type (Etype (Def_Id))
then
Check_Dynamically_Tagged_Expression
- (Expr => Expr,
- Typ => Etype (Def_Id),
+ (Expr => Expr,
+ Typ => Etype (Def_Id),
Related_Nod => Original_Node (N));
end if;
--------------------
function Mask_Type_Refs (Node : Node_Id) return Traverse_Result is
-
procedure Mask_Type (Typ : Entity_Id);
+ -- ??? what does this do?
---------------
-- Mask_Type --
end if;
end Mask_Type;
+ -- Start of processing for Mask_Type_Refs
+
begin
if Is_Entity_Name (Node) and then Present (Entity (Node)) then
Mask_Type (Etype (Entity (Node)));
procedure Mask_References is new Traverse_Proc (Mask_Type_Refs);
+ -- Local variables
+
Return_Stmt : constant Node_Id :=
First (Statements (Handled_Statement_Sequence (N)));
+
+ -- Start of processing for Mask_Unfrozen_Types
+
begin
pragma Assert (Nkind (Return_Stmt) = N_Simple_Return_Statement);
if not Is_Frozen (Spec_Id)
and then (Expander_Active
- or else ASIS_Mode
- or else (Operating_Mode = Check_Semantics
- and then Serious_Errors_Detected = 0))
+ or else ASIS_Mode
+ or else (Operating_Mode = Check_Semantics
+ and then Serious_Errors_Detected = 0))
then
-- The body generated for an expression function that is not a
-- completion is a freeze point neither for the profile nor for
Pragma_Linker_Constructor => -1,
Pragma_Linker_Destructor => -1,
Pragma_Linker_Options => -1,
- Pragma_Linker_Section => 0,
+ Pragma_Linker_Section => -1,
Pragma_List => 0,
Pragma_Lock_Free => 0,
Pragma_Locking_Policy => 0,
S : constant Entity_Id := Current_Scope_No_Loops;
begin
if Ekind (S) = E_Function
- and then Nkind (Original_Node (Unit_Declaration_Node (S)))
- = N_Expression_Function
+ and then Nkind (Original_Node (Unit_Declaration_Node (S))) =
+ N_Expression_Function
then
return;
end if;
Context := Scope (Item_Id);
while Present (Context) and then Context /= Standard_Standard loop
- if Ekind (Context) = E_Package then
+ if Is_Package_Or_Generic_Package (Context) then
Pack_Id := Context;
-- A package body is a cut off point for the traversal as the item