-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2010, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
with Types; use Types;
package Sem_Ch4 is
- procedure Analyze_Aggregate (N : Node_Id);
- procedure Analyze_Allocator (N : Node_Id);
- procedure Analyze_Arithmetic_Op (N : Node_Id);
- procedure Analyze_Call (N : Node_Id);
- procedure Analyze_Case_Expression (N : Node_Id);
- procedure Analyze_Comparison_Op (N : Node_Id);
- procedure Analyze_Concatenation (N : Node_Id);
- procedure Analyze_Conditional_Expression (N : Node_Id);
- procedure Analyze_Equality_Op (N : Node_Id);
- procedure Analyze_Explicit_Dereference (N : Node_Id);
- procedure Analyze_Expression_With_Actions (N : Node_Id);
- procedure Analyze_Logical_Op (N : Node_Id);
- procedure Analyze_Membership_Op (N : Node_Id);
- procedure Analyze_Negation (N : Node_Id);
- procedure Analyze_Null (N : Node_Id);
- procedure Analyze_Qualified_Expression (N : Node_Id);
- procedure Analyze_Quantified_Expression (N : Node_Id);
- procedure Analyze_Range (N : Node_Id);
- procedure Analyze_Reference (N : Node_Id);
- procedure Analyze_Selected_Component (N : Node_Id);
- procedure Analyze_Short_Circuit (N : Node_Id);
- procedure Analyze_Slice (N : Node_Id);
- procedure Analyze_Type_Conversion (N : Node_Id);
- procedure Analyze_Unary_Op (N : Node_Id);
- procedure Analyze_Unchecked_Expression (N : Node_Id);
- procedure Analyze_Unchecked_Type_Conversion (N : Node_Id);
+ procedure Analyze_Aggregate (N : Node_Id);
+ procedure Analyze_Allocator (N : Node_Id);
+ procedure Analyze_Arithmetic_Op (N : Node_Id);
+ procedure Analyze_Call (N : Node_Id);
+ procedure Analyze_Case_Expression (N : Node_Id);
+ procedure Analyze_Comparison_Op (N : Node_Id);
+ procedure Analyze_Concatenation (N : Node_Id);
+ procedure Analyze_Conditional_Expression (N : Node_Id);
+ procedure Analyze_Equality_Op (N : Node_Id);
+ procedure Analyze_Explicit_Dereference (N : Node_Id);
+ procedure Analyze_Expression_With_Actions (N : Node_Id);
+ procedure Analyze_Logical_Op (N : Node_Id);
+ procedure Analyze_Membership_Op (N : Node_Id);
+ procedure Analyze_Negation (N : Node_Id);
+ procedure Analyze_Null (N : Node_Id);
+ procedure Analyze_Qualified_Expression (N : Node_Id);
+ procedure Analyze_Quantified_Expression (N : Node_Id);
+ procedure Analyze_Range (N : Node_Id);
+ procedure Analyze_Reference (N : Node_Id);
+ procedure Analyze_Selected_Component (N : Node_Id);
+ procedure Analyze_Short_Circuit (N : Node_Id);
+ procedure Analyze_Slice (N : Node_Id);
+ procedure Analyze_Type_Conversion (N : Node_Id);
+ procedure Analyze_Unary_Op (N : Node_Id);
+ procedure Analyze_Unchecked_Expression (N : Node_Id);
+ procedure Analyze_Unchecked_Type_Conversion (N : Node_Id);
- procedure Analyze_Indexed_Component_Form (N : Node_Id);
+ procedure Analyze_Indexed_Component_Form (N : Node_Id);
-- Prior to semantic analysis, an indexed component node can denote any
-- of the following syntactic constructs:
-- a) An indexed component of an array
begin
-- This is one of the occasions on which we transform the tree during
- -- semantic analysis. If this is a completion, transform the expression
+ -- semantic analysis. If this is a completion, transform the expression
-- function into an equivalent subprogram body, and analyze it.
-- Expression functions are inlined unconditionally. The back-end will
Analyze_And_Resolve (Expr, R_Type);
Check_Limited_Return (Expr);
- -- The only RETURN allowed in SPARK is as the last statement of the
- -- function.
+ -- RETURN only allowed in SPARK is as the last statement function
if Nkind (Parent (N)) /= N_Handled_Sequence_Of_Statements
and then
---------------------------------
procedure Analyze_Subprogram_Renaming (N : Node_Id) is
- Formal_Spec : constant Node_Id := Corresponding_Formal_Spec (N);
- Is_Actual : constant Boolean := Present (Formal_Spec);
+ Formal_Spec : constant Node_Id := Corresponding_Formal_Spec (N);
+ Is_Actual : constant Boolean := Present (Formal_Spec);
- CW_Actual : Boolean := False;
+ CW_Actual : Boolean := False;
-- True if the renaming is for a defaulted formal subprogram when the
-- actual for a related formal type is class-wide. For AI05-0071.
-- no check for mode conformance, given that the signatures don't
-- match (the source mentions T but the actual mentions T'class).
- if CW_Actual then
+ if CW_Actual then
null;
-
else
Check_Mode_Conformant (New_S, Old_S);
end if;