AREA condition

Raised for allocating a based variable or for performing an area assignment.

Enabled/Disabled status

Always enabled.

Result

Attempted allocations or assignments that raise this condition have no resulting effect.

Raised

When either of the following occurs:

  • An attempt is made to allocate a based variable within an area that has too little free storage to accommodate it. The ON-unit for the AREA condition (for example, for a based area) can change the value of the pointer qualifying the area reference to point to a different area, where the allocation will be attempted again; or it can write out the area and reset it to empty.
  • When an area assignment is attempted where the maximum size of the source area exceeds that of the target area.

Other information

Condition codes
360, 361, 362
Implicit action
The ERROR condition is raised and a message is printed.
Normal return
The action from the ON-unit on normal return can be any of the following:
  • The allocation is not attempted again when the condition was raised by an allocation and the ON-unit is a null ON-unit.
  • The allocation is attempted again when the condition was raised by an allocation. Before making the attempt, the area reference is reevaluated. Therefore, if the ON-unit has changed the value of a pointer qualifying the reference to the inadequate area so that it points to another area, the allocation is attempted again within the new area.
  • Execution continues from the point at which the condition was raised when the condition was raised by an area assignment or by a SIGNAL statement.