1------------------------------------------------------------------------------ 2-- -- 3-- GNAT COMPILER COMPONENTS -- 4-- -- 5-- S E M _ C H 5 -- 6-- -- 7-- S p e c -- 8-- -- 9-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- 10-- -- 11-- GNAT is free software; you can redistribute it and/or modify it under -- 12-- terms of the GNU General Public License as published by the Free Soft- -- 13-- ware Foundation; either version 3, or (at your option) any later ver- -- 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- 17-- for more details. You should have received a copy of the GNU General -- 18-- Public License distributed with GNAT; see file COPYING3. If not, go to -- 19-- http://www.gnu.org/licenses for a complete copy of the license. -- 20-- -- 21-- GNAT was originally developed by the GNAT team at New York University. -- 22-- Extensive contributions were provided by Ada Core Technologies Inc. -- 23-- -- 24------------------------------------------------------------------------------ 25 26with Types; use Types; 27 28package Sem_Ch5 is 29 30 procedure Analyze_Assignment (N : Node_Id); 31 procedure Analyze_Block_Statement (N : Node_Id); 32 procedure Analyze_Case_Statement (N : Node_Id); 33 procedure Analyze_Exit_Statement (N : Node_Id); 34 procedure Analyze_Goto_Statement (N : Node_Id); 35 procedure Analyze_If_Statement (N : Node_Id); 36 procedure Analyze_Implicit_Label_Declaration (N : Node_Id); 37 procedure Analyze_Iterator_Specification (N : Node_Id); 38 procedure Analyze_Iteration_Scheme (N : Node_Id); 39 procedure Analyze_Label (N : Node_Id); 40 procedure Analyze_Loop_Parameter_Specification (N : Node_Id); 41 procedure Analyze_Loop_Statement (N : Node_Id); 42 procedure Analyze_Null_Statement (N : Node_Id); 43 procedure Analyze_Statements (L : List_Id); 44 45 procedure Analyze_Label_Entity (E : Entity_Id); 46 -- This procedure performs direct analysis of the label entity E. It 47 -- is used when a label is created by the expander without bothering 48 -- to insert an N_Implicit_Label_Declaration in the tree. It also takes 49 -- care of setting Reachable, since labels defined by the expander can 50 -- be assumed to be reachable. 51 52 procedure Check_Unreachable_Code (N : Node_Id); 53 -- This procedure is called with N being the node for a statement that is 54 -- an unconditional transfer of control or an apparent infinite loop. It 55 -- checks to see if the statement is followed by some other statement, and 56 -- if so generates an appropriate warning for unreachable code. 57 58end Sem_Ch5; 59