DocumentationEndless PL/I for POSIX SystemsUser's Manual  ·  ESS-PFUUM-001

Appendix C

Compiler Messages

This appendix lists the diagnostic messages of the PL/I compiler, in order of message number.

Each message is written to standard output, and to the listing file if there is one, in the following form (see Section 2.2.5, “Compiler Error Messages”):

*****ERROR nn SEVERITY s on line line-no in file filename *****
   message-text

For a message of severity 1, the first word is WARNING instead of ERROR. The text is broken into lines of about 60 characters, each indented three spaces. Where a message refers to something in the program, such as the name of a variable, it is shown here as name.

The severities are:

1 (Informational)

The program is valid, but uses a construct that may not be what you intended or may not be portable.

2 (Warning)

The compiler found a problem and has corrected it; check that its correction is what you intended. An object module is produced.

3 (Error)

The program is in error. The compiler continues, to find any further errors, but produces no object module.

4 (Fatal)

The compiler cannot continue, and stops at once.

After 100 messages of severity 3 or 4, the compiler reports message 71 and stops. The numbers are not consecutive: numbers that this compiler does not use are left out.

1 The source text contains extraneous data. Check for excess END statements, unbalanced quotes, and unbalanced /* */.

Severity: 3 (Error)

Explanation: The source file contains data following the last END statement, or following a string or comment.

User Action: Examine the listing file to locate the error. If there are too many END statements, check that all PROCEDURE and BEGIN statements are specified in the correct sequence. Correct the source program.

2 Insufficient END statements. An additional END statement has been supplied.

Severity: 2 (Warning)

Explanation: The compiler inserted an END statement in the file.

User Action: The listing file, if any, shows where the compiler inserted the END statement. Check that it is in the right place, and add the END statement to the source program.

3 This is an unrecognizable statement.

Severity: 3 (Error)

Explanation: A statement does not contain any identifiable PL/I statement keywords, or a statement contains extraneous tokens. For example, the statement ON ... THEN causes this error.

User Action: Examine the statement in error and correct it.

4 Invalid range specification in this DEFAULT statement.

Severity: 3 (Error)

Explanation: A DEFAULT statement has an invalid range.

User Action: Correct the values given for the range.

5 "name" is an unrecognizable attribute keyword.

Severity: 3 (Error)

Explanation: The attribute is not a keyword of the dialect being compiled.

User Action: Remove or correct the attribute keyword, or compile with the dialect that has it (the -D option).

6 "name" is an unrecognizable format-item.

Severity: 3 (Error)

Explanation: A format list in a GET EDIT or PUT EDIT statement contains a character that is not a valid PL/I format item.

User Action: Verify the syntax of the format list and ensure that the format item is a valid PL/I format item.

7 "name" is a label prefix but has previously been declared.

Severity: 3 (Error)

Explanation: More than one statement has the same label. The compiler cannot resolve references to the label.

User Action: Examine the source program, and change the label or labels that are duplicates. Verify that all references to the labels are also corrected.

8 "name" is a subscripted label prefix but has previously been declared with a different data type or a different number of dimensions.

Severity: 3 (Error)

Explanation: A label conflicts with the declaration of a variable.

User Action: If the label prefix has the same identifier as a declared variable, change either the label or the variable, and correct all references to them.

9 This statement contains a label prefix that has appeared on a previous statement in the same block.

Severity: 3 (Error)

Explanation: Two labels in the same block specify the same user-specified identifier and constant subscript.

User Action: Correct the identifier or the subscript and all references to it.

10 An expression or reference contained within this DECLARE or DEFAULT statement is excessively complex and has caused the compiler's expression buffer to overflow. Reduce the complexity and recompile.

Severity: 4 (Fatal)

Explanation: The compiler cannot interpret the statement.

User Action: Rewrite the declaration using two or more statements.

11 A colon cannot follow a WHEN or OTHERWISE component of a SELECT statement. The colon has been ignored.

Severity: 2 (Warning)

User Action: No action is needed, but you may want to remove the colon to avoid the message.

12 If any entry of a procedure has a RETURNS option, all entries must have a RETURNS option. A procedure cannot be both a subroutine and a function.

Severity: 3 (Error)

Explanation: The main procedure entry and alternate entries must all be declared similarly with respect to their usage as either a subroutine or a function.

User Action: Change the entry declarations to match the main entry declaration.

13 A non-ascii character has been found on this line.

Severity: 3 (Error)

Explanation: The compiler encountered an invalid character in the source line.

User Action: Remove the character.

14 "name" is a parameter but has been declared with a storage class or as a label.

Severity: 3 (Error)

Explanation: The declaration of a variable that is in the procedure's parameter list contains the BASED, CONTROLLED, DEFINED, AUTOMATIC, or STATIC attribute; or the name of a parameter is specified as a label.

User Action: Correct the declaration of the parameter so that it does not specify a storage class attribute. A parameter occupies the storage of its corresponding argument at the time of the invocation, and thus cannot be allocated storage in any other way. It also cannot be used as a label.

15 "name" as used in this statement conflicts with its usage in a previous statement within the same block.

Severity: 3 (Error)

Explanation: The name is used in a way that conflicts with an earlier use of it in the same block.

User Action: Examine both the specified statement and the other usages in the block and determine which is correct. Change the incorrect usages.

16 A label prefix cannot appear on a statement used as an on-unit.

Severity: 3 (Error)

Explanation: An ON-unit action statement contains a label.

User Action: Remove the label from the statement.

17 "name" is an apparent structure member, but does not immediately follow a variable with a level-number.

Severity: 3 (Error)

Explanation: A structure is incorrectly declared, or a variable declaration is preceded with an extraneous integer.

User Action: If the variable is a member of a structure, verify that the structure declaration is properly numbered and properly punctuated. The first level number in a structure declaration must be 1. If the variable is not a member of a structure, check the syntax of the declaration and remove the number preceding the variable name.

19 The closure label in this statement does not match the label prefix of any containing DO, BEGIN, or PROCEDURE statement. This statement has closed the external procedure and will probably cause false errors to be reported.

Severity: 3 (Error)

Explanation: Multiple closure is not permitted in PL/I. Each DO, BEGIN, PROCEDURE, and SELECT statement in the program must have a corresponding END statement.

User Action: Verify the label on the END statement in error. The label must match the label on the most recent DO, BEGIN, PROCEDURE, or SELECT statement that does not already have a corresponding END statement.

20 An IF, ON, DO, RETURN, LEAVE, or SELECT statement cannot be used as an on-unit.

Severity: 3 (Error)

Explanation: An ON-unit contains an invalid action statement.

User Action: Correct the ON-unit so that the first statement is not an IF, ON, RETURN, DO, or SELECT statement. To execute more than one statement in an ON-unit, use a begin block.

21 This statement contains a duplicate declaration of "name".

Severity: 3 (Error)

Explanation: The same identifier is used in more than one declaration at the same level.

User Action: Determine which declaration of the variable specifies the incorrect attributes, if they are different, and change the incorrect declaration.

22 The total number of declarations, parameter descriptors, and returns descriptors in this DECLARE statement exceeds the implementation's limit of 8192.

Severity: 4 (Fatal)

Explanation: The compiler cannot interpret the statement.

User Action: Simplify the statement. If it is a DECLARE statement, place the declarations in different statements. If the statement contains a parameter descriptor or returns descriptor, simplify the procedure calling sequences.

23 This statement contains duplicate WHILE options.

Severity: 3 (Error)

Explanation: The same WHILE option is used more than once in a single statement.

User Action: Remove one of the duplicated options.

24 A SYSTEM option appears as a statement.

Severity: 3 (Error)

User Action: Correct the statement.

25 Attributes declared for "name" conflict with factored attributes.

Severity: 3 (Error)

Explanation: An attribute specified for a variable within a list of factored attributes conflicts with an attribute specified in the variable declaration. For example, this error occurs if a precision or extent is specified twice and the values do not match, as in DECLARE (X CHAR(8),Y) CHAR(10);.

User Action: Determine which declaration of the attribute is invalid, and correct the statement.

26 This statement contains unbalanced parentheses.

Severity: 3 (Error)

Explanation: A statement has different numbers of left and right parentheses.

User Action: Find where a parenthesis is missing or extra, and correct the statement.

27 Invalid syntax in this SELECT statement.

Severity: 3 (Error)

User Action: Correct the SELECT statement.

28 Invalid end of text. Check for unbalanced quotes or unbalanced comments.

Severity: 3 (Error)

Explanation: The end of the source file was reached inside a string constant or a comment.

User Action: Find the string constant or comment that is not closed, and close it.

29 An identifier contains more than 32 characters. Only the first 32 characters will be used.

Severity: 3 (Error)

Explanation: An identifier is longer than 32 characters.

User Action: Shorten the identifier.

30 A FORMAT, ENTRY, PROCEDURE, END, DECLARE, or DEFAULT statement appears in a context that requires an executable single statement, do-group, or begin-block.

Severity: 3 (Error)

Explanation: ON statements and THEN, ELSE, WHEN, and OTHERWISE clauses require that the target action be an executable statement, a DO-group, SELECT-group, or a begin block.

User Action: Move the statement in error. If appropriate, place the statement in a begin block.

31 A factored level cannot be applied to "name".

Severity: 3 (Error)

Explanation: A declaration containing a structure is factored with an attribute that conflicts with a variable declared in the structure.

User Action: Verify the syntax of the declaration and determine the attributes that are in error. If necessary, revise the structure declaration so that attributes are not factored.

32 Previous errors prevent continued compilation. If no previous errors were diagnosed, contact compiler maintenance personnel.

Severity: 4 (Fatal)

Explanation: Previous errors have made continued compilation impossible.

User Action: Correct any error in the program and recompile.

33 Invalid syntax in attribute list.

Severity: 3 (Error)

Explanation: An attribute list contains an erroneous symbol, for example, a comma or parenthesis, where the compiler does not expect it. This error also occurs if the same attribute is specified more than once in the declaration of the attribute.

User Action: Verify the syntax of the attributes specified in the declaration. Check that a precision or length extent, if present, is enclosed in parentheses, that commas are present in factored declarations or in structure declarations, and so on.

34 The GENERIC attribute cannot be nested.

Severity: 3 (Error)

Explanation: A GENERIC attribute appears inside the GENERIC attribute of another name.

User Action: Declare each generic name separately.

35 PROCEDURE, ENTRY, and FORMAT statements must have a label.

Severity: 3 (Error)

Explanation: The indicated statement is not labeled.

User Action: Place a label on the statement that caused the error.

36 "name" is an unrecognizable attribute.

Severity: 3 (Error)

Explanation: A declaration contains a keyword that is not a valid attribute.

User Action: Check the statement for a misspelling, and check that commas, parentheses and spaces appear where required.

37 An END statement has been supplied to close a do-group, begin-block, or procedure.

Severity: 1 (Informational)

Explanation: The compiler inserted an END statement in the file.

User Action: The listing file, if any, indicates the END statement that was inserted by PL/I. Verify that PL/I placed the END statement in the correct position. This message is informational, and the program may be correct; however, you should correct the source program and insert the END statement.

38 The scale-factor of a constant exceeds the implementation's limits of -128<=q<=127.

Severity: 3 (Error)

Explanation: You specified an incorrect scale factor.

User Action: Correct the code.

39 DEFAULT NONE; will produce invalid declarations and ERROR 32 unless every declared name has been explicitly declared with a data type, storage class, and alignment attributes.

Severity: 1 (Informational)

User Action: None, unless the compiler also reports other errors.

40 This LEAVE statement is either not contained within a do-group, or it attempts to transfer control out of the current procedure or begin-block.

Severity: 3 (Error)

Explanation: A LEAVE statement must be contained in a DO-group, which can be nested. However, all DO-groups containing the LEAVE statement must be in the same block.

User Action: Ensure that the LEAVE statement is contained within a DO-group and that they are both contained in the same block.

41 This statement contains an ambiguous reference to "name".

Severity: 3 (Error)

Explanation: This error is produced when more than one structure contains a member with the same identifier name, and the name is referenced without a structure qualifier.

User Action: Determine the member name that should be referenced and correct the reference by including a structure qualifier of the form name1.name2.name3 ... in the statement.

46 "name" is declared with conflicting or duplicate attributes.

Severity: 3 (Error)

Explanation: The declaration gives the name attributes that conflict, such as FIXED and FLOAT, or gives the same attribute twice.

User Action: Correct the declaration.

49 An expected name value was not found. One of the values in this statement has a data type which is inconsistent with the context in which the value is used.

Severity: 3 (Error)

Explanation: A data item of one type has been specified in a context where an item of another data type is required. For example, this error occurs if the target label on the GOTO statement is not a label but a variable declared with other data type attributes.

User Action: Verify the data type of the item, and correct the declaration of the variable.

50 The precision specified for "name" exceeds the implementation's limit of FIXED BINARY(31). The maximum precision of 31 has been supplied. Use FIXED DECIMAL for larger values.

Severity: 2 (Warning)

Explanation: The maximum precision for fixed-point binary variables is 31; the compiler changed a larger value to the maximum.

User Action: Correct the declaration of the variable so that it does not specify a precision greater than 31.

51 The precision specified for "name" exceeds the implementation's limit of FIXED DECIMAL(31). The maximum precision of 31 has been supplied.

Severity: 2 (Warning)

Explanation: The compiler changed the precision of the fixed-point decimal variable.

User Action: Correct the declaration of the variable so that it does not specify a precision greater than 31.

52 The scale-factor specified for "name" exceeds the implementation's limit of -14<=q<=14. The scale-factor has been set to zero.

Severity: 2 (Warning)

Explanation: A scale is specified for a variable that is not in its declared range.

User Action: Specify a scale factor in the allowed range.

53 The precision specified for "name" exceeds the implementation's limit of FLOAT BINARY(53). The maximum precision of 53 has been supplied.

Severity: 2 (Warning)

Explanation: The compiler changed the precision of the floating-point variable.

User Action: Correct the declaration of the variable so that it does not specify a precision greater than the system's maximum.

54 The precision specified for "name" exceeds the implementation's limit of FLOAT DECIMAL(15). The maximum precision of 15 has been supplied.

Severity: 2 (Warning)

Explanation: The compiler changed the precision of the floating-point variable.

User Action: Correct the declaration of the variable so that it does not specify a precision greater than the system maximum.

56 More than 8 dimensions have been specified in a DIMENSION attribute.

Severity: 3 (Error)

Explanation: The parenthesized list of dimensions in the declaration of the array contains more than eight items.

User Action: Correct the declaration of the array so that it has no more than eight dimensions.

57 PASS2 has overflowed its stack. Reduce the complexity of this statement and recompile.

Severity: 4 (Fatal)

User Action: Reduce the complexity of this statement and recompile.

58 A descriptor is an apparent structure member, but does not immediately follow a descriptor with a level-number.

Severity: 3 (Error)

Explanation: A structure in a parameter descriptor is declared incorrectly, or an extraneous integer precedes an attribute in a parameter descriptor.

User Action: If the parameter is a member of a structure, verify that the structure declaration is properly numbered and properly punctuated. The first level number in a structure declaration must be 1. If the parameter is not a member of a structure, check the syntax of the descriptor and remove the number preceding the parameter.

59 "name" is declared with an * extent but is not a parameter or a descriptor. If this is intended to be a CONTROLLED variable use the compile option for IBM compatibility.

Severity: 3 (Error)

Explanation: An asterisk is specified for the length of a character string or for the dimension of an array, and the string or array is not a parameter.

User Action: Correct the declaration of the variable so that its extent is specified with a constant or a valid variable declaration.

60 "name" is declared with nonconstant extents but is not an automatic, based, controlled, or defined variable.

Severity: 3 (Error)

Explanation: The indicated variable or descriptor for a character-string, bit-string, or array variable used a variable instead of a constant to define the extent. Variables are permitted for extents only for automatic, BASED, and DEFINED variables.

User Action: Correct the declaration of the variable.

61 An expected name value was not found. One of the values in this statement has a data type that cannot be converted to the type required by the context in which the value is used.

Severity: 3 (Error)

Explanation: A noncomputational data type is specified when a computational data type is required, or vice versa. For example, this error occurs if the CHARACTER built-in function specifies a pointer or entry value for an argument.

User Action: Verify that the variable in question is correctly declared. If it is, correct the statement so that it refers to a variable of the correct data type.

62 Possible compiler error. An invalid code has been given to the convert subroutine of PASS2. Correct all program errors and recompile. If this message persists, contact compiler maintenance personnel.

Severity: 3 (Error)

Explanation: An internal compiler error has been detected.

User Action: If this message persists, report the problem to Endless Software Solutions.

63 The length of a name or constant exceeds the implementation's limit of 4000 characters. Check to see if all string constants are properly quoted with ' and that any contained 's occur in pairs. Also check for unbalanced /* */.

Severity: 4 (Fatal)

Explanation: A name or constant is longer than 4000 characters. This usually means that a string constant or a comment has not been closed.

User Action: Close the string constant or comment at the right place.

64 A built-in function has been referenced with the wrong number of arguments.

Severity: 3 (Error)

Explanation: Too many or not enough arguments are specified in a reference to a built-in function.

User Action: Verify the argument list required by the built-in function, and correct the statement.

66 The depth of nesting of a structure exceeds the implementation's limit of 16.

Severity: 4 (Fatal)

Explanation: A structure contains too many levels.

User Action: Correct the declaration of the structure. If necessary, modify the structure so that it has no more than 16 levels.

67 A statement exceeds the implementation's limit of 4096 tokens.

Severity: 4 (Fatal)

Explanation: The statement contains more than 4096 constants, identifiers, and punctuation symbols, including operators.

User Action: Simplify the statement.

68 Invalid syntax in an arithmetic constant.

Severity: 3 (Error)

Explanation: The statement contains an arithmetic constant that is incorrectly specified.

User Action: This message may be followed by additional messages that provide syntactic reasons for the failure. Determine the type of constant required in the statement and the correct way to specify the constant. Correct the statement.

69 An arithmetic constant must be separated from the following symbol by a delimiter. A blank delimiter has been supplied.

Severity: 2 (Warning)

Explanation: This message indicates a syntax error in a constant, for example, an invalid character in a floating-point number or the omission of apostrophes around a bit-string constant.

User Action: Correct the constant.

70 A symbol begins with _. The _ has been ignored.

Severity: 3 (Error)

Explanation: The compiler encountered a symbol beginning with an underscore.

User Action: None. You may want to remove the underscore from the symbol name to avoid getting this message in the future.

71 The total number of errors exceeds the implementation's limit of 100.

Severity: 4 (Fatal)

Explanation: Compilation has stopped due to the number of errors encountered.

User Action: Correct the reported errors and recompile.

72 The second argument of the round built-in function must be an optionally signed decimal integer constant.

Severity: 3 (Error)

Explanation: A reference to the ROUND built-in function specifies an invalid argument.

User Action: Correct the argument in the reference to the ROUND built-in function.

73 The R-format must reference a format-value.

Severity: 3 (Error)

Explanation: The label specified in the R-format must be associated with a remote format.

User Action: Change the label you specified, or create a label and remote format to match the label you specified.

74 The only values that can be converted to pointers are offset variables that have been declared with an area name.

Severity: 3 (Error)

Explanation: The compiler cannot resolve the location of the specified offset without the specification of the area in which the offset is based.

User Action: Correct the declaration of the offset so that it specifies a base area.

75 A floating-point value is required by this statement, but a noncomputational value has been used. It cannot be converted.

Severity: 3 (Error)

Explanation: The indicated expression or reference has a noncomputational data type that cannot be converted to a floating-point value, yet has been specified in a context that requires a floating-point value.

User Action: Correct the expression so that it specifies a floating-point value or a value that can be converted to floating-point.

76 One of the bounds declared for "name" is invalid because the lower bound is greater than the upper bound.

Severity: 3 (Error)

Explanation: An array is incorrectly declared.

User Action: Correct the declaration of the array variable in error so that all bounds are valid. In the declaration of the bound x:y, the value of x must be numerically less than the value of y.

77 This statement contains an unrecognizable condition name.

Severity: 3 (Error)

Explanation: An ON, SIGNAL, or REVERT statement specifies an invalid condition name.

User Action: Check the statement for a misspelling, and check that the name is a PL/I condition name.

78 A parenthesized name is not valid with this condition.

Severity: 3 (Error)

Explanation: Only the I/O condition names and the VAXCONDITION condition name can specify values.

User Action: Correct the ON condition name in the statement.

79 Excessive complexity of this statement has caused the compiler's parse output stack to overflow. Reduce the complexity and recompile.

Severity: 4 (Fatal)

Explanation: The compiler cannot interpret the statement.

User Action: Rewrite the declaration using two or more statements.

80 "name" is an unrecognizable condition prefix name.

Severity: 3 (Error)

Explanation: Unknown condition name encountered in condition prefix.

User Action: Change the condition name.

81 A complex arithmetic value is required by this statement, but a noncomputational value has been used. It cannot be converted.

Severity: 3 (Error)

Explanation: The indicated expression or reference has a data type that cannot be converted to an arithmetic expression, yet has been specified in a context that requires an arithmetic expression.

User Action: Correct the expression so that it specifies an arithmetic data type or a data type that can be converted to arithmetic.

82 Invalid syntax in this statement. A "name" was found where another token was expected.

Severity: 3 (Error)

Explanation: The compiler looks for specific types of tokens within statements, attribute lists, and extents. This error occurs when one type of token appears in an inappropriate context, for example, if the ADDR built-in function occurs in an INITIAL attribute list or if the required string is missing from a PICTURE attribute.

User Action: Determine what data the compiler expects and correct the statement.

83 Invalid syntax in this statement. A name keyword was not found in the expected position.

Severity: 3 (Error)

Explanation: A statement is missing a keyword.

User Action: Correct the syntax of the statement as indicated by the message.

84 Invalid conversion. Noncomputational data cannot be converted to string or arithmetic data.

Severity: 3 (Error)

Explanation: The indicated expression or reference has a data type that cannot be converted to an arithmetic expression, yet has been specified in a context that requires an arithmetic expression.

User Action: Correct the expression so that it specifies an arithmetic data type or a data type that can be converted to arithmetic.

85 A structure-qualified reference to "name" cannot be resolved to any declaration known to this block.

Severity: 4 (Fatal)

Explanation: A reference in the form name1.name2.name3 ... cannot be resolved.

User Action: Examine the structure-qualified reference in the statement that caused the error. Verify that the structure member that is referenced is a part of the specified structure. Correct the reference so that it refers to the correct structure or to the correct member.

86 A locator-qualified reference to "name" cannot be resolved to any declaration known to this block.

Severity: 4 (Fatal)

Explanation: A reference to a BASED variable is not valid.

User Action: Check the declaration of the variable to ensure that it is correctly specified and that the qualified reference specifies a valid pointer or offset value.

87 A structure-qualified reference contains more than 15 qualifying names.

Severity: 3 (Error)

Explanation: A reference in the form name1.name2.name3 ... contains more than 15 names.

User Action: Examine the structure-qualified reference and compare it with the declaration of the structure to ensure that each qualifying name is specified correctly.

88 A procedure reference contains more than 64 arguments.

Severity: 3 (Error)

Explanation: A CALL statement or a function reference specifies an argument list with more than 64 arguments.

User Action: Examine the argument list to see if there is a syntax error. If the list is correct, simplify the program so that no procedure requires more than 64 arguments.

89 The scale-factor specified in a conversion built-in function exceeds the implementation's limit of -128<=q<=127.

Severity: 3 (Error)

Explanation: A conversion built-in function, for example, DECIMAL, is invoked with a scale-factor argument that is not a valid precision.

User Action: Determine the correct range of precision for the indicated data type and specify a value in that range in the argument list for the built-in function.

90 The undeclared name "name" has been declared as a FIXED BINARY variable in the outermost procedure.

Severity: 2 (Warning)

Explanation: A name that is not declared, and is not a label, has been referenced. The compiler declares it in the outermost procedure with default attributes.

User Action: Check that the reference is correctly spelled; if it is not, correct the spelling. If the variable is not declared, declare it with the appropriate attributes for its use.

91 "name" is a nonbased variable referenced with a locator qualifier.

Severity: 3 (Error)

Explanation: A locator-qualified reference is specified for a variable that does not have the BASED attribute.

User Action: Remove the locator qualifier (->) from the reference. If you expected that the variable needed a locator qualifier, verify that the variable has the BASED attribute.

92 "name" is a based variable referenced without a locator qualifier.

Severity: 3 (Error)

Explanation: A variable is declared with the BASED attribute without a pointer variable and is referenced without a locator qualifier (->).

User Action: Specify a pointer variable in the declaration of the variable, or specify the current pointer reference in the statement that caused the error.

93 The base-reference declared for "name" contains more * subscripts than this reference has subscripts. This reference cannot be mapped into a valid reference to the base-variable.

Severity: 3 (Error)

Explanation: The number of star (*) subscripts of a variable with the DEFINED storage class does not match the number of star (*) subscripts of the variable on which it is defined.

User Action: Correct the declaration so that it specifies the correct number of subscripts.

94 "name" has been passed by-value because its attributes did not match those of the corresponding parameter. Enclose the argument in parentheses to suppress this warning.

Severity: 1 (Informational)

User Action: Check that passing by value is appropriate. Enclose the argument in parentheses to suppress this message.

95 "name" has been referenced with too many arguments.

Severity: 3 (Error)

Explanation: The number of arguments in a procedure reference exceeds the number of parameters in the corresponding parameter list or parameter descriptor list.

User Action: Verify the number of arguments required by the invoked procedure, and correct the argument list. If the procedure is a non-PL/I procedure with a variable-length argument list, specify the LIST attribute on the last parameter of the entry declaration.

97 The precision arguments of BINARY, DECIMAL, FIXED, FLOAT, DIVIDE, MULTIPLY, ADD, and SUBTRACT built-in functions must be decimal integer constants.

Severity: 3 (Error)

Explanation: A nonconstant value is specified for the precision argument of one of the built-in functions listed.

User Action: Correct the argument list for the built-in function in error so that it specifies a constant value for the precision argument. Replace the variable specified for the precision argument with an integer constant.

98 "name" has been referenced with an argument list which is incompatible with its declaration. An empty argument list is required to satisfy the declaration.

Severity: 3 (Error)

Explanation: A CALL statement or a function reference specifies an argument list for a procedure that has no parameters.

User Action: Verify the arguments required for the procedure invocation. If the parameter descriptor or parameter list does not specify any parameters, the procedure invocation must not specify any arguments. Note whether the parameter descriptor list or parameter list is in error; if so, correct it. Otherwise, correct the procedure invocation.

99 This statement contains inconsistent file description attributes or options that conflict with those attributes.

Severity: 3 (Error)

Explanation: The attributes specified for a file constant in a DECLARE or OPEN statement are incompatible; for example, both the STREAM and the UPDATE attributes are specified. This error also occurs when conflicting ENVIRONMENT options are specified for a file.

User Action: Determine which attributes or options are in conflict, and correct the statement.

100 "name" has been referenced with too few arguments.

Severity: 3 (Error)

Explanation: The number of parameters in a parameter list or parameter descriptor list exceeds the number of arguments specified in the corresponding procedure reference.

User Action: Verify the number of arguments required by the invoked procedure, and correct the argument list. If the procedure has a variable-length argument list, specify the TRUNCATE attribute on the proper formal parameters in the entry declaration.

101 "name" has been referenced with too many empty argument lists.

Severity: 3 (Error)

Explanation: A procedure call or function reference specified too many empty argument lists, for example, F()()(A,B).

User Action: Determine the correct number of empty argument lists, and correct the reference.

102 This statement contains duplicate "name" options.

Severity: 3 (Error)

Explanation: A statement contains more than one specification of the same option; for example, the LIST option is specified more than once in a PUT statement.

User Action: Determine which specification of the duplicated option is the incorrect one, and delete it from the statement.

103 Invalid option for this statement or invalid syntax in an option. "name" is an invalid option.

Severity: 3 (Error)

Explanation: A statement contains an invalid option.

User Action: Check whether keyword options are misspelled or if any OPTIONS options are specified without the OPTIONS keyword. Correct the specification.

104 One of the iSUBs used in the base-reference of "name" cannot be replaced by a subscript from this reference. This reference cannot be mapped into a valid reference to the base- variable.

Severity: 3 (Error)

User Action: Change the reference to map to the base variable.

105 The precision specified for the result of this built-in function exceeds the implementation's maximum allowed for the resulting data type.

Severity: 3 (Error)

Explanation: An argument list for a built-in function contains an invalid precision argument.

User Action: Correct the precision argument in the built-in function reference that caused the error.

106 A reference to "name" contains a subscript that has not been used as a replacement for an iSUB or an asterisk in the base-reference. This reference cannot be mapped into a valid reference to the base variable.

Severity: 3 (Error)

User Action: Change the reference to map to the base variable.

107 "name" has been referenced with too few subscripts. Asterisk subscripts must be used to reference a cross-section. All subscripted references must have as many subscripts as the array has dimensions - including any inherited dimensions.

Severity: 3 (Error)

Explanation: The number of subscripts specified in the reference to the array variable is fewer than the number of dimensions in the array.

User Action: Examine the declaration of the array to determine the number of subscripts required, determine the missing subscripts, and correct the statement. If the array is declared within a structure that is dimensioned, be sure to include the structure dimensions in the total dimensions of the array.

108 An array or structure value has been used in a context that requires a scalar value.

Severity: 3 (Error)

Explanation: An array or structure reference is specified in an invalid context, for example, as an operand of an arithmetic operation.

User Action: Correct the statement so that it does not contain a reference to an aggregate.

109 An assignment target, parameter descriptor, or returns descriptor is not an array or structure of the proper shape to receive the array or structure value being assigned to it.

Severity: 3 (Error)

Explanation: The parameter specification does not correspond to the formal specification.

User Action: Change either the actual parameter or the formal parameter so that they match.

110 A string constant exceeds the implementation's maximum length limit of 4000.

Severity: 3 (Error)

User Action: Shorten the size of the string constant.

111 An operation on two structures is possible only when both structures have the same number of immediate members.

Severity: 3 (Error)

Explanation: The specified operation contains structure operands that do not match.

User Action: Change one or both structures so they match.

112 An operation on two arrays is possible only when both arrays have the same number of dimensions and the exact same lower and upper bounds.

Severity: 3 (Error)

Explanation: The specified operation contains array operands that do not match.

User Action: Change one or both arrays so they match.

113 A bit-string constant contains an invalid digit following the B. Only 1, 2, 3, or 4 are permitted.

Severity: 3 (Error)

Explanation: A bit-string constant is incorrectly specified.

User Action: Determine the correct base for the bit-string constant, and correct the specification.

114 This is an unrecognizable % statement.

Severity: 3 (Error)

Explanation: A statement beginning with a percent sign (%) not a valid PL/I preprocessor statement.

User Action: Check that a preprocessor keyword is spelled correctly; or, if a percent sign is specified in a character-string constant, verify that the string is properly delimited.

115 Invalid syntax in %REPLACE statement. The correct syntax is %REPLACE id BY c; where id is an identifier and c is: a character-string constant, a bit-string constant, or an arithmetic constant preceded by an optional minus sign.

Severity: 3 (Error)

Explanation: A %REPLACE statement is specified incorrectly.

User Action: Correct the statement.

116 name could not be converted to its internal representation. Check for too many digits, an exponent that is too large or too small, or an invalid character in a string constant.

Severity: 3 (Error)

Explanation: A constant could not be converted to internal representation.

User Action: Check for too many digits, an exponent that is too large or too small, or an invalid character in a string constant.

117 %INCLUDE statements cannot be nested more than 4 levels deep.

Severity: 4 (Fatal)

Explanation: Include files have too many nesting levels.

User Action: Reduce the number of include file nesting levels.

118 Invalid syntax in %INCLUDE statement. The correct syntax is %INCLUDE char-string-constant;

Severity: 3 (Error)

Explanation: A %INCLUDE statement is incorrectly specified.

User Action: Enclose the file name in apostrophes.

119 The first argument to a LBOUND, HBOUND, or DIM built-in function must be an array reference.

Severity: 3 (Error)

Explanation: The argument list for one of the functions listed is incorrectly specified.

User Action: Correct the argument list for the built-in function.

120 Invalid dimension specified in HBOUND, LBOUND, or DIM.

Severity: 3 (Error)

Explanation: The value specified for the dimension argument of the built-in function that caused the error is invalid for the array. For example, this error occurs if a value of 10 is specified for an array that has only 5 dimensions.

User Action: Determine the number of dimensions in the array and correct the argument.

121 The INITIAL attribute specified for "name" contains fewer values than are required to fully initialize the variable.

Severity: 2 (Warning)

Explanation: An INITIAL attribute specified for an array specifies fewer items than there are elements of the array.

User Action: Verify that the program will execute successfully without all array elements initialized. If not, correct the declaration of the array so that all elements are initialized.

122 The ALLOCATION built-in function must reference a nonmember controlled variable.

Severity: 3 (Error)

Explanation: The ALLOCATION built-in function returns the number of generations of a variable and is used only with CONTROLLED variables. A variable with a storage class other than CONTROLLED was given as the argument of the ALLOCATION built-in function.

User Action: Supply a valid argument and recompile the program.

123 All entries of a multi-entry function must return values whose data types are valid conversion targets for all RETURN statements in the function. This RETURN statement's value cannot be converted to the return type required by one of the entries of this function.

Severity: 3 (Error)

Explanation: This message is issued for a RETURN statement in a procedure with more than one entry point, when the value returned cannot be converted to the type returned by one or more of the entries. It is issued once for each such value.

User Action: Verify that the program's flow of control is such that the invalid conversion will not take place. To avoid this message, correct the return data type in one or more RETURN statements.

124 One of the initial values specified for "name" cannot be converted to the type of the variable.

Severity: 3 (Error)

Explanation: An invalid value is specified in an INITIAL attribute.

User Action: Compare the data type of the constants specified in the INITIAL attribute list with the attributes specified for the variable. Determine which has the invalid data type, and correct it.

125 More than 64 operands have been used with an operator, function, or call.

Severity: 3 (Error)

Explanation: An expression contains more than 64 operands.

User Action: Simplify the statement in error.

126 Excess initial values have been specified for "name".

Severity: 2 (Warning)

Explanation: An INITIAL list for an array declaration specifies more constant values than array elements, or multiple values were specified for a scalar constant. A list of values is valid only in an array declaration. The declaration DCL (A,B) ... INIT(1,2) initializes both A and B to 1. The second value specified is ignored.

User Action: Delete the excess values.

127 name is an invalid picture.

Severity: 3 (Error)

Explanation: The string specified in a picture specification contains a character that is not a valid picture character, specifies an iteration factor for a character that must not be repeated, or contains an iteration factor that is not correctly specified.

User Action: Verify and correct the picture.

129 name results in a compiled picture that exceeds the implementation's limit. Reduce the size of the picture and recompile.

Severity: 3 (Error)

Explanation: A picture specification is too complex or contains more than 255 characters.

User Action: Correct the picture.

131 name contains multiple sign symbols.

Severity: 3 (Error)

Explanation: A picture specification contains more than one plus or minus sign symbol.

User Action: Correct the picture so that it contains only a single sign.

132 A static pointer, area or offset, name, has been given an initial attribute rather than null or empty. pointers and offsets default to null and areas zeroed control blocks.

Severity: 2 (Warning)

Explanation: A STATIC pointer, offset or area has an INITIAL attribute. Pointers and offsets are initialized to null, and areas to empty, without one.

User Action: Remove the INITIAL attribute, or give it the value NULL or EMPTY.

133 The nesting of DO, PROCEDURE, and BEGIN statements exceeds the implementation's limit of 64.

Severity: 4 (Fatal)

Explanation: There are too many nested blocks. Nesting of DO, PROCEDURE, and BEGIN statements must not exceed 64. Nesting of SELECT statements must not exceed 31.

User Action: Simplify the nesting of blocks in the program.

134 One of the targets of this assignment is not a variable or pseudo-variable reference.

Severity: 3 (Error)

Explanation: The left side of an assignment statement contains a constant or an invalid reference.

User Action: If the target of the assignment is a variable, ensure that it is properly declared. If the target is a function reference, it must be one of the PL/I built-in functions that are valid as pseudovariables.

135 By-name expansion is invalid because the left-most target of the assignment is a structure that contains more than 20 elementary members.

Severity: 3 (Error)

Explanation: A BY NAME assignment can expand a target structure of at most 20 elementary members.

User Action: Split the assignment, or assign the members separately.

136 A reference to a generic entry name cannot be replaced by any of the alternatives because none match the arguments given in the reference to the generic name.

Severity: 3 (Error)

Explanation: None of the entries in the GENERIC declaration matches the arguments given.

User Action: Check the arguments, or add an entry for them to the GENERIC declaration.

137 A subscript is out-of-range in this statement.

Severity: 2 (Warning)

Explanation: An integer constant appears in a context where the value of the integer is outside the permissible range.

User Action: Check that the constant was specified correctly and that it does not exceed the implementation limit for the context.

138 "name" is a function that has been called by a CALL statement.

Severity: 3 (Error)

Explanation: A CALL statement specifies the name of an entry that has the RETURNS attribute.

User Action: If the invoked procedure is a function, correct the statement in error so that the procedure is invoked as a function reference. Otherwise, delete the RETURNS option from the PROCEDURE statement of the procedure so that it can be invoked by a CALL statement.

139 "name" is a subroutine that has been called as a function.

Severity: 3 (Error)

Explanation: The statement contains a reference to a procedure that does not have the RETURNS attribute.

User Action: If the invoked procedure is a subroutine, correct the statement in error so that the procedure is invoked with a CALL statement. Otherwise, delete the RETURNS attribute from the PROCEDURE statement of the procedure so that it can be invoked by a function reference.

140 A dope-vector exceeds the implementation's limit of 512 bytes. Either eliminate the use of * extents in this entry point, or pass structures by passing pointers to them.

Severity: 4 (Fatal)

Explanation: A structure parameter has so many members with asterisk extents that its descriptor cannot be represented.

User Action: Simplify the parameters.

141 "name" is an undeclared parameter. It has been declared in its containing block and will acquire default attributes.

Severity: 1 (Informational)

Explanation: A name in a parameter list is not declared with a data type, so the compiler gives it default attributes.

User Action: Declare the parameter with the appropriate data type attributes.

143 "name" has been declared without a data type. A default type of FIXED BIN(15) has been supplied.

Severity: 2 (Warning)

Explanation: The name is declared without a data type attribute, so the compiler gives it a default data type.

User Action: If the default data type is what you want, no action is needed. Otherwise, give the declaration a data type.

145 "name" has been declared with an INITIAL attribute. An INITIAL attribute cannot be specified for variables of this storage class.

Severity: 3 (Error)

Explanation: The INITIAL attribute was given for a DEFINED variable or a parameter.

User Action: Ensure that the variable has the AUTOMATIC, STATIC, BASED, CONTROLLED, or GLOBALDEF attribute. The INITIAL attribute is invalid for all other storage classes.

147 "name" is an entry or file constant and as such it cannot be declared with a DIMENSION attribute.

Severity: 3 (Error)

Explanation: The ENTRY or FILE attribute was specified for an array, but the VARIABLE attribute is not specified.

User Action: Specify the VARIABLE attribute to create an array of file or entry variables.

148 An expected optionally signed integer was not found.

Severity: 3 (Error)

Explanation: A nonconstant expression is specified in a context that requires an integer constant.

User Action: Specify an integer constant.

150 "name" has been declared FLOAT with a scale-factor. The scale-factor will be ignored.

Severity: 3 (Error)

Explanation: A floating-point variable has been declared with a scale factor.

User Action: Correct the declaration of the floating-point variable so that it does not specify a scale factor.

151 "name" has been declared with a negative size. A size of one has been supplied.

Severity: 3 (Error)

Explanation: A negative number is specified for a variable's extent.

User Action: Check the declaration of the character-string or bit-string variable, and change the length to a positive value.

152 "name" is undeclared and has been used in an ALLOCATE or LOCATE statement as the name of a based or controlled variable.

Severity: 3 (Error)

Explanation: The target variable in the ALLOCATE statement is a name that is not declared.

User Action: Verify that the variable is specified correctly. If it is, declare it with the BASED or CONTROLLED attribute.

153 "name" cannot be allocated because no SET option or implied SET option is available.

Severity: 3 (Error)

Explanation: The variable referenced in the ALLOCATE statement has the BASED attribute but is not declared with an explicit pointer reference.

User Action: Specify the SET option on the ALLOCATE statement, or correct the BASED variable's declaration so that it specifies a pointer variable.

154 "name" cannot be allocated because no IN option or implied IN option is available.

Severity: 3 (Error)

Explanation: The variable is BASED on an offset, or allocated in an area, but the ALLOCATE statement has no IN option and the declaration does not name an area.

User Action: Add an IN option to the ALLOCATE statement, or name the area in the declaration of the offset.

155 "name" cannot be allocated because the SET option or implied SET option does not reference a pointer or offset variable.

Severity: 3 (Error)

User Action: Correct the SET option, or the declaration of the BASED variable, so that it names a pointer or offset variable.

156 "name" cannot be allocated because the IN option does not specify an area value.

Severity: 3 (Error)

Explanation: AREAs are the only variable type that can have other variables allocated inside them.

User Action: Correct the IN option to refer to an area.

157 "name" cannot be allocated because it is neither a based nor a controlled variable. Only based variables can be allocated by a LOCATE statement.

Severity: 3 (Error)

Explanation: An ALLOCATE or LOCATE statement names a variable that is neither BASED nor CONTROLLED.

User Action: Correct the statement, or the declaration of the variable.

158 All RETURN statements in a function must return values.

Severity: 3 (Error)

Explanation: A RETURN statement in a function does not specify a value.

User Action: Specify a value on the RETURN statement, ensuring that the data type of the value matches the data type specified on the RETURNS option of the PROCEDURE statement.

159 A RETURN statement in a subroutine cannot return a value.

Severity: 3 (Error)

Explanation: A RETURN statement in a subroutine specifies a value.

User Action: Ascertain whether the indicated procedure is to be invoked as a subroutine or as a function. If it is a subroutine, remove the return value from the RETURN statement. If it is a function, specify the RETURNS option on its PROCEDURE statement.

160 A RETURN statement cannot be contained within an on-unit.

Severity: 3 (Error)

Explanation: A RETURN statement is specified within a begin block specified for an ON-unit.

User Action: To exit from the program, use a nonlocal GOTO within the ON-unit.

161 A FREE statement must free a nonmember BASED or CONTROLLED variable.

Severity: 3 (Error)

Explanation: A FREE statement specifies a variable that is not a BASED variable, a CONTROLLED variable, or a variable that is a member of a structure.

User Action: Correct the reference in the FREE statement.

162 In order to prevent the creation of an array whose elements are of unequal length, a default length of 128 has been used for the element length of an array temporary.

Severity: 2 (Warning)

User Action: None.

163 A RETURNS option or attribute must specify a scalar, array, or structure. It cannot specify a list of values. Check for missing or incorrect level-numbers.

Severity: 3 (Error)

Explanation: Invalid return value detected.

User Action: Change the return value to specify a scalar, array, or structure.

164 Invalid conversion required by an assignment, return, or argument-list.

Severity: 3 (Error)

Explanation: The indicated value specified in an assignment, a RETURN statement, or in an argument list does not have a data type that is valid for conversion to the data type of the other operand, the return descriptor, or the called routine.

User Action: Determine the appropriate data type, and correct either the indicated value or the operand, descriptor, or routine declaration.

165 An offset has been declared relative to a nonarea variable.

Severity: 3 (Error)

Explanation: An offset is declared with the OFFSET attribute naming a variable that is not an area.

User Action: Name an area in the OFFSET attribute.

166 Subscripts are not valid in the reference of a REFER option. The referenced variable must not be an array or member of a dimensioned structure.

Severity: 3 (Error)

Explanation: The REFER option can be used only with non-dimensioned structures declared with the BASED attribute.

User Action: Change the referenced variable, or remove the REFER option.

167 "name" is not a built-in function known to this implementation. If this is an external entry, it must be declared by a DECLARE statement with an ENTRY attribute.

Severity: 3 (Error)

Explanation: A reference to a procedure cannot be resolved.

User Action: Verify that the variable referenced in the statement is a valid subroutine or function. If it is an external function, declare it with the ENTRY attribute.

168 The argument of ADDR must be a reference to a variable.

Severity: 3 (Error)

Explanation: The ADDR built-in function specifies an argument that is a constant or a global symbol.

User Action: Verify that the correct argument is specified for the ADDR built-in function and that the argument is not a constant.

169 A built-in function that produces a floating-point result cannot specify a scale-factor.

Severity: 3 (Error)

Explanation: A built-in function that returns either a floating-point or fixed-point result, depending on its arguments, specifies a scale factor for an argument that is floating point.

User Action: Correct the argument list, omitting the scale factor.

170 Offset/pointer conversion is possible only if the offset has an associated area value.

Severity: 3 (Error)

Explanation: The compiler cannot resolve the location of the specified offset without the specification of the area in which the offset is based.

User Action: Correct the declaration of the offset so that it specifies a base area.

171 The argument of UNSPEC must be a reference to a scalar variable or a reference to an element of an array of scalar values.

Severity: 3 (Error)

Explanation: The UNSPEC built-in function is used incorrectly.

User Action: Correct the reference to UNSPEC. Its argument cannot be a constant or a structure name.

172 The argument of ADDR cannot be an unaligned bit-string or an aggregate of unaligned bit-strings.

Severity: 1 (Informational)

Explanation: The argument of the ADDR built-in function is not on a byte boundary. For example, this error occurs if the argument is an unaligned bit string.

User Action: Verify that the correct argument is specified for the ADDR built-in function. If a bit-string variable is correctly specified, check that the declaration of the variable has the ALIGNED attribute.

173 Possible compiler error. PASS2 attempted to free an already freed value node. Correct all program errors and recompile. If this message persists, contact compiler maintenance personnel.

Severity: 3 (Error)

Explanation: The compiler detected an internal error.

User Action: Fix any other errors generated during the compilation, and recompile. If this message persists, report the problem to Endless Software Solutions.

174 The operands of ^<, ^>, >, <, >=, or <= must be real arithmetic or string values.

Severity: 3 (Error)

Explanation: A noncomputational value, such as a pointer or a file, is an operand of a relational operator other than = or ^=.

User Action: Verify that the correct variable references are specified in the expression and that the statement does not violate the rules for operands of relational operators. Correct the statement.

175 Areas cannot be compared in any context. Arrays or structures cannot be compared in IF, WHILE, or UNTIL contexts because the result of such a compare is not a scalar value.

Severity: 3 (Error)

Explanation: An AREA variable cannot be used in an expression with a relational operator.

User Action: Change the program to avoid using AREA variables in relational expressions.

176 The name given in a CONDITION( ) clause must be the name of a programmer-defined condition. Such names can be declared with the condition attribute.

Severity: 3 (Error)

Explanation: Only names explicitly declared with the CONDITION attribute in a DECLARE statement can be used with the CONDITION condition.

User Action: Declare the condition name explicitly.

177 The name given in an I/O condition must be the name of a file value.

Severity: 3 (Error)

Explanation: The UNDEFINEDFILE, ENDFILE, or KEY condition name is specified with a value that is not a file reference.

User Action: Verify that the reference in the condition name is to a file constant or file variable that is declared correctly.

178 An unconnected array cannot be referenced in an ADDR, INTO, FROM, STRING pseudo-variable, base reference of a DEFINED variable, or argument that is to be passed by-reference to a parameter that has constant extents. In the latter case, the parameter must have asterisk extents.

Severity: 3 (Error)

Explanation: A member of a structure that has the dimension attribute is referenced in an invalid context. Because the storage of such an array is not contiguous, the array cannot be referenced in any of the contexts listed in the message.

User Action: If possible, change the declaration of the structure so that the array that caused the error becomes a connected array. Otherwise, do not reference the array in the context that caused the error.

179 The undeclared name "name" has been contextually declared in this block. It will acquire default attributes.

Severity: 1 (Informational)

User Action: Check that the default attributes give the right results. You may want to declare the name to avoid the message.

180 The undeclared name "name" has been implicitly declared in the outermost block. It will acquire default attributes.

Severity: 1 (Informational)

User Action: Check that the default attributes give the right results. You may want to declare the name to avoid the message.

181 The BY NAME option is invalid on this statement because the structures referenced herein do not have at least one member whose qualified name is the same for all structures.

Severity: 3 (Error)

User Action: Correct the structures, or use separate assignments instead of BY NAME.

182 A reference in a GET DATA or PUT DATA must identify a variable.

Severity: 3 (Error)

Explanation: The GET DATA or PUT DATA statement does not reference a variable.

User Action: Correct the statement.

183 Subscripts are not valid in a GET DATA list or in a LIKE attribute.

Severity: 3 (Error)

User Action: Remove the subscripts.

184 "name" has one or more structure members as well as a LIKE attribute. A LIKE attribute cannot be used if the structure has members of its own.

Severity: 3 (Error)

Explanation: The structure declaration containing the LIKE attribute already contains other members.

User Action: Remove the members of the structure or substructure containing the LIKE attribute.

185 The LIKE attribute specified for "name" cannot be resolved to a declaration known within this block.

Severity: 3 (Error)

Explanation: The major or minor structure referenced by the LIKE attribute is not known to the current block. Therefore, the compiler cannot locate the referenced structure.

User Action: Declare the referenced structure outside of the procedure, if the STATIC storage class is acceptable. Otherwise, declare the referenced structure within the appropriate block.

186 The LIKE attribute specified for "name" references a structure or member of a structure that was produced by the expansion of another LIKE attribute.

Severity: 3 (Error)

Explanation: The LIKE attribute can reference major or minor structures known to the current block, but cannot directly or indirectly reference a structure resulting from the expansion of another LIKE attribute.

User Action: You may need to specifically declare the structure.

187 The LIKE attribute specified for "name" does not reference a structure.

Severity: 3 (Error)

Explanation: The LIKE attribute must reference a major and minor structure known to the current block.

User Action: Check if the referenced structure is contained in the current block. If it is, determine whether it meets the syntax requirements of the LIKE attribute.

188 "name" has been given the ERROR attribute by a DEFAULT statement.

Severity: 3 (Error)

Explanation: A DEFAULT statement with the ERROR attribute applies to the name, which means that it must be declared explicitly.

User Action: Declare the name with explicit attributes.

189 The declaration of "name" contains attributes that conflict with those of an applicable DEFAULT statement. To avoid this message, make the predicate of the DEFAULT state- ment more explicit. The DEFAULT statement has been ignored.

Severity: 1 (Informational)

User Action: To avoid this message, make the predicate of the DEFAULT statement more explicit. The DEFAULT statement has been ignored.

190 DEFAULT statements must appear in an external procedure, They cannot be contained in internal procedures or begin-blocks.

Severity: 3 (Error)

User Action: Move the DEFAULT statement to an external procedure.

191 Excess initial values have been specified for "name".

Severity: 3 (Error)

Explanation: An INITIAL list for an array declaration specifies more constant values than array elements, or multiple values were specified for a scalar constant. A list of values is valid only in an array declaration. The declaration DCL (A,B) ... INIT(1,2) initializes both A and B to 1. The second value specified is ignored.

User Action: Delete the excess values.

192 Incomplete attributes have been specified for "name".

Severity: 3 (Error)

Explanation: Something is missing in a declaration.

User Action: Correct the declaration.

193 "name" has been declared with REFER options but is not a based variable.

Severity: 3 (Error)

Explanation: The REFER option can be applied only to members of BASED structures. The program contains a REFER option that has been used with a storage class other than BASED.

User Action: Change the storage class to BASED.

194 An array bound, string length, structure member offset, array element offset, or the size of a variable exceeds 2**31 or was specified with an invalid constant.

Severity: 3 (Error)

Explanation: An invalid constant is specified for an array bound.

User Action: Verify that the bound specified is within the valid range for array bounds and correct the declaration. Note that this error may occur when any parenthesized expression follows an identifier in a declaration. In this context, the message indicates that the statement syntax is in error and must be corrected.

195 "name" has been declared with a length greater than 32767. A length of one has been supplied.

Severity: 3 (Error)

Explanation: The variable is incorrectly declared.

User Action: Determine the correct range of values for the data type of the indicated variable and correct its declaration.

196 "name" has been declared with a variable iteration factor. An iteration factor of one has been supplied.

Severity: 3 (Error)

Explanation: A nonconstant iteration factor was used to initialize a static variable. Nonconstant iteration factors are valid only in the initialization of automatic variables.

User Action: Specify a constant in the iteration factor, or declare the variable with the AUTOMATIC attribute.

197 "name" has been declared with a nonconstant initial value. Static variables must have constant initial values.

Severity: 3 (Error)

Explanation: A static variable is incorrectly initialized.

User Action: Correct the declaration so that it uses only constant values in the INITIAL attribute.

198 "name" has been declared with an INITIAL attribute containing more than 32 levels of nesting.

Severity: 3 (Error)

User Action: Simplify the INITIAL attribute.

199 The initial value specified for "name" exceeds the implementation's limit of 4096 bytes.

Severity: 3 (Error)

User Action: Use a smaller initial value, or assign the value in executable statements.

200 Possible compiler error. This phase has name unclaimed nodes. Correct all program errors and recompile. If this message persists, contact compiler maintenance personnel.

Severity: 2 (Warning)

Explanation: The compiler detected an internal error.

User Action: Correct all other errors reported during the compilation and recompile. If this message persists, report the problem to Endless Software Solutions.

201 The entry name selected by a reference to "name" has not been declared as an ENTRY. All entry names in a GENERIC attribute must be declared ENTRY either by a DECLARE or PROCEDURE or ENTRY statement.

Severity: 3 (Error)

Explanation: You referenced an undeclared entry name in a GENERIC attribute.

User Action: Declare the entry name.

202 A value used in this statement cannot be converted to the data type required by the context in which it is used.

Severity: 3 (Error)

Explanation: An operand in an expression is not compatible with the data type required for the expression; for example, a pointer value is used in an arithmetic operation such as addition.

User Action: Verify the data types of the variables in the expression, and correct the statement.

213 String constants used with repetition factors in an INITIAL attribute must be enclosed in parentheses in order to be compatible with standard PL/I.

Severity: 2 (Warning)

User Action: Enclose the string constant in parentheses, as in INITIAL((10)('A')).

214 "name" has been truncated to eight characters. Do not use external names longer than eight characters.

Severity: 1 (Informational)

User Action: Use a shorter external name.

221 Excessive size and complexity of a procedure produced more than 32767 operators and exceeded the compiler's limit for a single procedure. Reduce the size or complexity of the procedure that contains this statement.

Severity: 4 (Fatal)

Explanation: This statement pushes the procedure over the compiler's limit of 32767 constants, identifiers, and punctuation symbols, including operators.

User Action: Simplify the procedure.

222 'name' must have an INITIAL((n)EMPTY) attribute, where n is the number of elements in the array.

Severity: 3 (Error)

User Action: Add the INITIAL attribute to the declaration.

224 A member of a dimensioned structure is considered to be an interleaved array and as such cannot be used in an aggregate assignment or other context that requires connected storage.

Severity: 3 (Error)

User Action: Change the code to specify another operand to the aggregate assignment, or change the declaration of the specified array.

225 Possible compiler error. The code generator has found an invalid data type. Correct all program errors and recompile. If this message persists, contact compiler maintenance personnel.

Severity: 3 (Error)

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

226 Possible compiler error. The code generator has overflowed its stack. Correct all program errors and recompile. If this message persists, contact compiler maintenance personnel.

Severity: 4 (Fatal)

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

230 Possible compiler error. The code generator tried to free an already freed value node. Correct all program errors and recompile. If this message persists, contact compiler maintenance personnel.

Severity: 3 (Error)

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

234 A complex variable cannot be used as an index of a DO statement.

Severity: 3 (Error)

User Action: Use another variable as the index for the DO statement.

238 A Built-in function or concatenation produced a result string whose length exceeds 32767 or is negative.

Severity: 3 (Error)

User Action: Supply shorter values to the built-in function.

244 The name built-in function requires a variable reference as its argument.

Severity: 3 (Error)

Explanation: The argument of the built-in function, for example SIZE, is not a reference to a variable: it might be a constant or an expression.

User Action: Supply a valid argument.

246 "name" has a data type that is not supported in this implementation.

Severity: 2 (Warning)

User Action: Use another data type.

247 The denominator in a divide operation has been evaluated as a constant of zero value.

Severity: 3 (Error)

Explanation: A division has a divisor that the compiler has evaluated as the constant zero.

User Action: Correct the expression.

248 A descriptor for the entry, "name" referenced on this line has been declared with a VALUE attribute. This is obsolete and not portable to other implementations. Use options(c) on the declaration.

Severity: 1 (Informational)

Explanation: An entry has a parameter descriptor with the VALUE attribute. This form is obsolete.

User Action: Declare the entry with OPTIONS(C) instead.

249 A descriptor for the entry, "name" has a data type not suitable for for the VALUE attribute, it requires a descriptor. Remove the VALUE attribute from the declaration.

Severity: 3 (Error)

Explanation: The VALUE attribute is given for a parameter whose data type has to be passed with a descriptor.

User Action: Remove the VALUE attribute from the declaration.

358 A substring reference to "name" specifies an invalid offset or length value. The two offset expressions must satisfy the following: 1 .LE. offset1 .LE. offset2 .LE. length-of-item

Severity: 3 (Error)

User Action: Change the offset or length of one of the two expressions.

417 A precision/length exceeds the implementation limit of 32767.

Severity: 3 (Error)

User Action: Change the specified precision or length so it no longer exceeds 32767.

430 The subroutine entry "name" is contained in a function procedure. This does not conform to the ANSI definition.

Severity: 1 (Informational)

User Action: If you plan on porting this application, check that your target platform supports the specified statement.

431 The function entry "name" is contained in a subroutine procedure. This does not conform to the ANSI definition.

Severity: 1 (Informational)

User Action: If you plan on porting this application, check that your target platform supports the specified statement.

432 The structure variable "name" is being compared for equality to the null pointer but does not have a locator qualifier in its declaration.

Severity: 3 (Error)

Explanation: Only structure variables containing locator qualifiers in their declarations can be compared to the null pointer.

User Action: Add a locator qualifier to the declaration or change the comparison.

435 A reference to a cross section of an array of structures is not permitted in IBM compatibility mode. Remove the asterisks and surrounding parentheses from the reference to name.

Severity: 1 (Informational)

User Action: Remove the asterisks and the parentheses around them, or compile with another dialect.

436 This %replace statement is a duplicate of one that appeared previously. Please remove one of them.

Severity: 1 (Informational)

User Action: Remove one of the duplicate %replace statements.

437 Invalid syntax in a %replace statement. Check to see if the identifier appeared in another %replace statement with a different replace value.

Severity: 3 (Error)

Explanation: You cannot specify the same identifier in two %replace statements that give different values.

User Action: Check to see if the identifier appeared in another %replace statement with a different replace value, and correct the code.

439 The implementation-defined limit of 99 include files has been exceeded.

Severity: 4 (Fatal)

Explanation: You cannot include more than 99 files.

User Action: Nest or combine some of the files, if possible, to somehow reduce the number.

444 The token, "name" is not a valid environment option.

Severity: 3 (Error)

Explanation: The specified token is not a valid environment option.

User Action: Check the reference manual for valid environment options, and correct the expression.

445 "name" which has been declared with the LIKE or TYPE attribute must have a level number. The default value is set to level 1.

Severity: 2 (Warning)

User Action: Check that level 1 is right. You may want to give the level number to avoid the message.

446 A value in this expression is being converted to type POINTER. This is an extension to the ANSI standard.

Severity: 1 (Informational)

User Action: None. If the program is to be ported, check that the other compiler allows the conversion.

447 The only arithmetic permitted on pointers is the addition or subtraction of a fixed binary expression.

Severity: 4 (Fatal)

Explanation: The code attempts to do an arithmetic operation on a pointer other than addition or subtraction.

User Action: Remove the specified operation.

448 A pointer-valued expression is being assigned to a fixed binary(15) reference, "name", which will result in loss of significance.

Severity: 1 (Informational)

User Action: Check that the assignment does what you intend.

449 "name" has been declared with the CONTROLLED attribute and can not be allocated in an area or with a set option. Change the the declaration from CONTROLLED to BASED.

Severity: 2 (Warning)

Explanation: The SET option sets a pointer variable to the memory location of storage acquired for a BASED variable. A CONTROLLED variable cannot be used in a pointer-qualified reference.

User Action: Remove the SET option or change the variable declaration from CONTROLLED to BASED.

450 Invalid syntax in this statement. An unexpected token has been encountered.

Severity: 3 (Error)

Explanation: The compiler encountered a token it did not expect.

User Action: Remove or change the token, or otherwise fix the code so that the token is appropriate.

452 "name" has been declared as a register. Only integer values, in the range appropriate to this machine are permitted in the register specification. Consult the reference manual for the permissable values.

Severity: 3 (Error)

User Action: Specify an integer of the correct value in the register specification.

453 Only fixed binary and pointer data types may be assigned to a register.

Severity: 3 (Error)

Explanation: The code attempts to assign something other than a fixed binary or pointer to a register.

User Action: Change the code so that you only assign appropriate types of data to the register.

455 The entry declaration is missing a parameter descriptor, which will suppress type checking in ibm compatibility mode, but will default to fixed bin(15) in ANSI mode.

Severity: 1 (Informational)

User Action: Check that the default gives the right results. You may want to add the parameter descriptor to avoid the message.

456 "name" has been declared with an incorrect precision. The precision must be an integer greater than zero. "name" will be given a default precision as described in the reference manual.

Severity: 1 (Informational)

User Action: Check that the default precision gives the right results, and give a valid precision.

457 An entry appears in the generic descriptor list of "name". Entires used in this manner must not have a descriptor list of their own. Remove the descriptor list.

Severity: 2 (Warning)

User Action: Remove the descriptor list.

458 In the declaration of the generic intrinsic procedure "name", one of the members of the generic descriptor list has an invalid attribute. Consult the table of permissable attributes in the reference manual.

Severity: 2 (Warning)

User Action: Correct the invalid attribute.

459 If the level number of a structure is specified in an ALLOCATE statement, it must be level 1.

Severity: 3 (Error)

Explanation: The compiler detected a level number other than 1 in an ALLOCATE statement.

User Action: Correct the code to specify level 1, after checking that the structure is correct.

460 A controlled variable in this ALLOCATE statement has previously been declared without the CONTROLLED attribute in the procedure "name". The previously declare variable will acquire the CONTROLLED attribute.

Severity: 2 (Warning)

User Action: Check that the CONTROLLED attribute gives the right results. You may want to declare the variable CONTROLLED to avoid the message.

461 The controlled variable, "name", has not been declared. It will acquire the attributes from the ALLOCATE statement in which it appears.

Severity: 1 (Informational)

User Action: Check that the attributes give the right results. You may want to declare the variable to avoid the message.

462 The only attributes permitted in the ALLOCATE controlled variable are: dimension, CHAR([length|*]), BIT([length|*]), G([length|*]), AREA([size|*]), INIT(i[,j]...) or INIT entry[(arg1[,arg2]...)]. If * is given, then value is taken from current generation. If none exists, the program is in error.

Severity: 3 (Error)

User Action: Use only the attributes listed.

463 The variable, "name", has a * extent and is not a parameter. It will acquire the CONTROLLED attribute.

Severity: 1 (Informational)

User Action: Check that the CONTROLLED attribute gives the right results. You may want to declare the variable CONTROLLED to avoid the message.

464 The variable, "name", has a * extent, is not a parameter and has no data type. It will acquire CONTROLLED and FIXED BIN(15) attributes.

Severity: 2 (Warning)

User Action: Declare the variable with a data type, and as CONTROLLED if that is what you intend.

465 The data type given for the controlled variable, "name", in its declaration does not agree with the attributes given in the ALLOCATE statement.

Severity: 3 (Error)

User Action: Change either the data type of the controlled variable or the attributes of the ALLOCATE statement.

466 A call to the function, "name", which takes no arguments does not use the preferred syntax name(). The meaning of the context in which it is used would be much clearer in the latter form.

Severity: 1 (Informational)

User Action: Use the specified syntax to avoid getting this message in the future.

467 The label array "name" is an automatic array of label variables, elements of which are use as statment prefixes. If the label array is never modified, remove the declaration. Otherwise, this will result in terribly inefficient code.

Severity: 1 (Informational)

User Action: Remove the declaration if the label array is never modified. Otherwise, no action needed.

468 "name" has been declared without a data type but with an initial attribute. It will acquire the type of the initial value.

Severity: 1 (Informational)

User Action: Check that the data type is right. You may want to give the declaration a data type to avoid the message.

471 Invalid syntax in a %DCL statement. An identifer was expected after the comma.

Severity: 3 (Error)

User Action: Correct the statement.

472 "name" is being activated, but no replacement has yet been given.

Severity: 1 (Informational)

Explanation: A %ACTIVATE statement names a preprocessor identifier that has no value yet.

User Action: Give the identifier a value before activating it, or check the order of the preprocessor statements.

473 "name" is being declare without and attribute in a %DCL statement. Please specify one of the following: CHAR, FIXED, ENTRY or BUILTIN (case unimportant).

Severity: 3 (Error)

User Action: Specify one of the listed attributes in your %DCL statement.

474 Syntax error in a DEFAULT statement in IBM compatibility mode, missing left parenthesis in a VALUE specification.

Severity: 3 (Error)

User Action: Add the left parenthesis.

477 Possible compiler error. Unexpected condition signaled. Correct any program errors and recompile. If this message persists, contact compiler maintenance personnel.

Severity: 4 (Fatal)

Explanation: A condition was raised inside the compiler that it did not expect.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

478 Internal compiler error detected. Unexpected operator encountered during code generation.

Severity: 2 (Warning)

Explanation: An internal error occurred in the code generator.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

479 Compilation terminated by user.

Severity: 4 (Fatal)

Explanation: The compilation was interrupted, for example from the keyboard.

User Action: None.

481 Cannot open include file "name".

Severity: 3 (Error)

Explanation: The file named in a %INCLUDE statement could not be opened.

User Action: Check the name of the file, the directories searched for include files (the -I option), and the permissions of the file.

482 Fatal internal compiler error detected. Correct any program errors and recompile. If this message persists, contact compiler maintenance personnel.

Severity: 4 (Fatal)

Explanation: An internal error occurred in the compiler.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

483 Internal compiler error detected. Temp value stack overflow.

Severity: 2 (Warning)

Explanation: An internal error occurred in the code generator.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

484 Internal compiler error detected. Temp value stack underflow.

Severity: 2 (Warning)

Explanation: An internal error occurred in the code generator.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

485 Internal compiler error detected. Virtual registers exhausted.

Severity: 2 (Warning)

Explanation: An internal error occurred in the code generator.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

488 Internal compiler error detected. Unexpected condition signaled in codegen.

Severity: 2 (Warning)

Explanation: An internal error occurred in the code generator.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

489 Internal compiler error detected. Unexpected condition signaled in codegen-select_case.

Severity: 2 (Warning)

Explanation: An internal error occurred in the code generator.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

490 Internal compiler error detected. Unexpected condition signaled.

Severity: 2 (Warning)

Explanation: An internal error occurred in the compiler.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

491 The value of the AUTOMATIC or DEFINED variable "name" is used in an extent expression or initial-value expression in the declaration of an AUTOMATIC or DEFINED variable in the same block.

Severity: 2 (Warning)

Explanation: The declaration of an AUTOMATIC or DEFINED variable uses, in an extent or initial value, the value of another AUTOMATIC or DEFINED variable of the same block. The order in which the variables are allocated and initialized is not defined, so the value may not be set yet.

User Action: Declare the variable used in the expression in an enclosing block, or assign the value in executable statements.

494 Internal compiler error detected. Symbol name is already linked.

Severity: 2 (Warning)

Explanation: An internal error occurred in the compiler.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

496 Use of parentheses surrounding the like reference is not standard and will render the program less portable.

Severity: 1 (Informational)

User Action: Remove the parentheses.

497 This is an invalid EXEC statement. Only SQL, CICS and DL1 are supported.

Severity: 3 (Error)

Explanation: An EXEC statement names something other than SQL, CICS or DL1.

User Action: Correct the EXEC statement.

499 Internal compiler error detected. SP reset point not allocated.

Severity: 2 (Warning)

Explanation: An internal error occurred in the code generator.

User Action: Correct any other errors in the program and recompile. If the message persists, report the problem to Endless Software Solutions.

502 The based structure member, name has been used in an extent expression in an array or string member of the same structure. This is invalid PL/I and should be replaced with refer extents. Such structures may not be allocated. The name, name, must have a unique spelling within this scope.

Severity: 1 (Informational)

User Action: Use REFER options for the extents of the members.

503 Use of the built-in function name requires the Digital dialect option.

Severity: 4 (Fatal)

Explanation: The built-in function exists only in the DEC dialect.

User Action: Compile with -D dec, or do not use the built-in function.

504 Use of the pseudo-variable name requires the Digital dialect option.

Severity: 4 (Fatal)

Explanation: The pseudovariable exists only in the DEC dialect.

User Action: Compile with -D dec, or do not use the pseudovariable.

507 The external procedure name "main" will conflict with the library function "main" supplied in the UniPrise PL/I run-time library, inhibiting initialization of the run-time.

Severity: 1 (Informational)

Explanation: An external procedure is named main. The run-time library has its own function of that name, which starts the run-time environment.

User Action: Rename the procedure.

508 The UniPrise PL/I symbolic debugger does not support programs containing executable statements in included text files.

Severity: 1 (Informational)

Explanation: The source program has executable statements in a file included with %INCLUDE. The debugger cannot show them.

User Action: To debug those statements, move them into the main source file.

510 The condition "name" is always enabled and cannot be disabled by a condition prefix.

Severity: 3 (Error)

User Action: Remove the condition from the prefix.

511 The condition "name" is not allowed as a prefix.

Severity: 3 (Error)

User Action: Remove the condition from the prefix.

512 Use of the name requires the Digital dialect option.

Severity: 4 (Fatal)

Explanation: The feature exists only in the DEC dialect.

User Action: Compile with -D dec, or do not use the feature.

513 Use of the name requires the IBM dialect option.

Severity: 4 (Fatal)

Explanation: The feature exists only in the IBM dialect.

User Action: Compile with -D ibm, or do not use the feature.

514 The name is not supported in this implementation.

Severity: 3 (Error)

User Action: Do not use the feature.

515 Invalid *-extent in a RETURNS attribute for name.

Severity: 3 (Error)

Explanation: The RETURNS attribute gives an asterisk extent that is not allowed.

User Action: Give a constant extent.

516 The TYPE attribute specified for "name" cannot be resolved to a declaration known within this block.

Severity: 3 (Error)

Explanation: The name in the TYPE attribute is not declared in, or known to, the block.

User Action: Check the name, and declare the type it refers to.

517 The TYPE attribute specified for "name" is a circular definition.

Severity: 3 (Error)

Explanation: The TYPE attribute refers, directly or through other TYPE attributes, back to the name being declared.

User Action: Correct the declarations.