-- An implicit label declaration is generated in the innermost enclosing
-- declarative part. This is done for labels, and block and loop names.
- -- Note: any changes in this routine may need to be reflected in
- -- Analyze_Label_Entity.
-
procedure Analyze_Implicit_Label_Declaration (N : Node_Id) is
Id : constant Node_Id := Defining_Identifier (N);
begin
Kill_Current_Values;
end Analyze_Label;
- --------------------------
- -- Analyze_Label_Entity --
- --------------------------
-
- procedure Analyze_Label_Entity (E : Entity_Id) is
- begin
- Mutate_Ekind (E, E_Label);
- Set_Etype (E, Standard_Void_Type);
- Set_Enclosing_Scope (E, Current_Scope);
- Set_Reachable (E, True);
- end Analyze_Label_Entity;
-
------------------------------------------
-- Analyze_Loop_Parameter_Specification --
------------------------------------------
procedure Analyze_Statements (L : List_Id);
procedure Analyze_Target_Name (N : Node_Id);
- procedure Analyze_Label_Entity (E : Entity_Id);
- -- This procedure performs direct analysis of the label entity E. It
- -- is used when a label is created by the expander without bothering
- -- to insert an N_Implicit_Label_Declaration in the tree. It also takes
- -- care of setting Reachable, since labels defined by the expander can
- -- be assumed to be reachable.
-
procedure Check_Unreachable_Code (N : Node_Id);
-- This procedure is called with N being the node for a statement that is
-- an unconditional transfer of control or an apparent infinite loop. It