gcc/ada/
* sem_elab.adb (Process_SPARK_Instantiation): Fix typo in
comment.
* sem_prag.adb (Find_Related_Context): Add missing reference to
No_Caching in the comment; handle pragmas on compilation units.
Inst_Rep : Scenario_Rep_Id;
In_State : Processing_In_State);
pragma Inline (Process_SPARK_Instantiation);
- -- Verify that instanciation Inst does not precede the generic body it
+ -- Verify that instantiation Inst does not precede the generic body it
-- instantiates (SPARK RM 7.7(6)). Inst_Rep is the representation of the
-- instantiation. In_State is the current state of the Processing phase.
-- Constant_After_Elaboration
-- Effective_Reads
-- Effective_Writers
+ -- No_Caching
-- Part_Of
-- Find the first source declaration or statement found while traversing
-- the previous node chain starting from pragma Prag. If flag Do_Checks is
Stmt : Node_Id;
begin
+ -- If the pragma comes from an aspect on a compilation unit that is a
+ -- package instance, then return the original package instantiation
+ -- node.
+
+ if Nkind (Parent (Prag)) = N_Compilation_Unit_Aux then
+ return
+ Get_Unit_Instantiation_Node
+ (Defining_Entity (Unit (Enclosing_Comp_Unit_Node (Prag))));
+ end if;
+
Stmt := Prev (Prag);
while Present (Stmt) loop