-- Handle overflow checking for an arithmetic operator. Also handles the
-- cases of ELIMINATED and MINIMIZED overflow checking mode. If the mode
-- is one of the latter two, then this routine can also be called with
- -- a conditional expression node to make sure that we properly handle
+ -- an if or case expression node to make sure that we properly handle
-- overflow checking for dependent expressions. This routine handles
-- front end vs back end overflow checks (in the front end case it expands
-- the necessary check). Note that divide is handled separately using
- -- Apply_Arithmetic_Divide_Overflow_Check.
+ -- Apply_Divide_Checks.
procedure Apply_Constraint_Check
(N : Node_Id;
-- Returns result of converting node N to Bignum. The returned value is not
-- analyzed, the caller takes responsibility for this. Node N must be a
-- subexpression node of a signed integer type or Bignum type (if it is
- -- already a Bignnum, the returned value is Relocate_Node (N).
+ -- already a Bignum, the returned value is Relocate_Node (N)).
procedure Determine_Range
(N : Node_Id;
Top_Level : Boolean);
-- This is the main routine for handling MINIMIZED and ELIMINATED overflow
-- checks. On entry N is a node whose result is a signed integer subtype.
- -- If the node is an artihmetic operation, then a range analysis is carried
+ -- If the node is an arithmetic operation, then a range analysis is carried
-- out, and there are three possibilities:
--
-- The node is left unchanged (apart from expansion of an exponentiation
--
-- In the first two cases, Lo and Hi are set to the bounds of the possible
-- range of results, computed as accurately as possible. In the third case
- -- Lo and Hi are set to No_Uint (there are some cases where we cold get an
+ -- Lo and Hi are set to No_Uint (there are some cases where we could get an
-- advantage from keeping result ranges for Bignum values, but it could use
-- a lot of space and is very unlikely to be valuable).
--
-- If the node is not an arithmetic operation, then it is unchanged but
-- Lo and Hi are still set (to the bounds of the result subtype if nothing
- -- better can be determined.
+ -- better can be determined).
--
-- Note: this function is recursive, if called with an arithmetic operator,
-- recursive calls are made to process the operands using this procedure.
-- with a Long_Long_Integer left operand and an Integer right operand, and
-- we would get a semantic error.
--
- -- The routine is called in three situations if we are operating in
- -- either MINIMIZED or ELIMINATED modes.
+ -- The routine is called in three situations if we are operating in either
+ -- MINIMIZED or ELIMINATED modes.
--
-- Overflow checks applied to the top node of an expression tree when
-- that node is an arithmetic operator. In this case the result is
-- just that the result of IN is false in that case).
--
-- Note that if Bignum values appear, the caller must take care of doing
- -- the appropriate mark/release operation on the secondary stack.
+ -- the appropriate mark/release operations on the secondary stack.
--
-- Top_Level is used to avoid inefficient unnecessary transitions into the
-- Bignum domain. If Top_Level is True, it means that the caller will have