Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, Messages and Codes Manual

Compiler Informational Messages (1000-1076, 2800-2999)

IBM1018I I
option-name should be specified within OPTIONS, but is accepted as is.
Explanation:

This message is used in building the options listing.

IBM1035I I
The next statement was merged with this statement.
Explanation:

The statement following the statement for which this message was issued were merged with that statement.

IBM1036I I
The next statement-count statements were merged with this statement.
Explanation:

The specified number of statements following the statement for which this message was issued were merged with that statement.

IBM1038I I
note
Explanation:

This message is used to report back end informational messages.

IBM1039I I
Variable variable name is implicitly declared.
Explanation:

All variables should be declared except for contextual declarations of built-in functions, SYSPRINT and SYSIN.

IBM1040I I
note
Explanation:

This message is used by %NOTE statements with a return code of 0.

IBM1041I I
Comment spans line-count lines.
Explanation:

A comment ends on a different line than it begins. This may indicate that an end-of-comment delimiter is missing.

IBM1042I I
String spans line-count lines.
Explanation:

A string ends on a different line than it begins. This may indicate that a closing quote is missing.

IBM1043I I
variable name is contextually declared as attribute.
Explanation:

There is no declare statement for the named variable, but it has been given the indicated attribute because of its usage. For instance, if the variable is used as a locator, it will be given the POINTER attribute.

IBM1044I I
FIXED BINARY with precision 7 or less is mapped to 1 byte.
Explanation:

The OS/370 PL/I and PL/I for MVS compilers would have mapped this to 2 bytes.

IBM1045I I
Code generated for the REFER object reference name would be more efficient if the REFER object had the attributes REAL FIXED BIN(p,0).
Explanation:

If the REFER object has any other attributes, it will be converted to and from REAL FIXED BIN(31,0) via library calls.

IBM1046I I
UNSPEC applied to an array is handled as a scalar reference.
Explanation:

The OS/370 PL/I and PL/I for MVS compilers would have handled UNSPEC applied to an array as an array of scalars.

IBM1047I I
ORDER option may inhibit optimization.
Explanation:

If the ORDER option applies to a block, optimization is likely to be inhibited, especially if the block contains ON-units that refer to variables declared outside the ON-unit.

IBM1048I I
GET/PUT DATA without a data-list inhibits optimization.
Explanation:

A GET DATA statement can alter almost any variable, and a PUT DATA statement requires almost all variables to be stored home anytime a PUT DATA statement might be executed. Both of these requirements inhibit optimization.

IBM1050I I
INITIAL attribute for RESERVED STATIC is ignored.
Explanation:

The INITIAL attribute has been specified for a variable with the attributes RESERVED STATIC. Unless such a variable is listed in the EXPORTS clause of a PACKAGE statement, the variable will not be initialized.

IBM1051I I
Argument to BUILTIN name built-in may not be byte aligned.
Explanation:

This message applies to the ADDR, CURRENTSTORAGE/SIZE and STORAGE/SIZE built-in functions. Applying any one of these built-in functions to an unaligned bit variable may not produce the results you expected.

IBM1052I I
The NODESCRIPTOR attribute is accepted even though some arguments have * extents.
Explanation:

When a string with * extent or an array with * extents is passed, PL/I normally passes a descriptor so that the called routine knows how big the passed argument really is. The NODESCRIPTOR attribute indicates that no descriptor should be passed; this is invalid if the called routine is a PL/I procedure.

 
 
    dcl x entry( char(*), fixed bin(31) )
          options( nodescriptor );
 
IBM1053I I
Scaled FIXED operation evaluated as FIXED DECIMAL.
Explanation:

If one of the built-in functions ADD, DIVIDE, MULTIPLY or SUBTRACT is invoked with argument that have type FIXED, if either operand has a non-zero scale factor, the result will have type FIXED DEC.

IBM1058I I
Conversion from source type to target type will be done by library call.
Explanation:

This message can be used to help find code that may be very expensive if executed as part of a loop or to find code involving conversions of unlike types.

IBM1059I I
SELECT statement contains no OTHERWISE clause.
Explanation:

The ERROR condition will be raised if no WHEN clause is satisfied.

IBM1060I I
Name resolution for identifier selected its declaration in a structure, rather than its non-member declaration in a parent block.
Explanation:

The PL/I language rules require this, but it might be a little surprising. In the following code fragment, for instance, the display statement would display the value of x.y.

 
 
    a: proc;
 
      dcl y fixed bin init(3);
 
      call b;
 
      b: proc;
 
        dcl
          1 x,
            2 y fixed bin init(5),
            2 z fixed bin init(7);
 
        display( y );
 
      end;
 
    end a;
 
IBM1061I I
Probable DATE calculation should be examined for validity after the year 1999.
Explanation:

Use of any of the constants 365, 1900 or ’19’ may indicate a date calculation. If this is true, you should examine the calculation to determine if it will be valid after the year 1999.

IBM1062I I
variable inferred to contain a two-digit year.
Explanation:

The indicated was inferred to contain a two-digit year because, for example, it was assigned the DATE built-in function.

IBM1063I I
Code generated for DO group would be more efficient if control variable were a 4-byte integer.
Explanation:

The control variable in the DO loop is a 1-byte integer, 2-byte integer, fixed decimal or fixed picture, and consequently, the code generated for the loop will not be optimal.

IBM1064I I
Use of OPT(2) forces TEST(BLOCK).
Explanation:

Under OPT(2), any specification of TEST hooks stronger than TEST(BLOCK) is not supported.

IBM1065I I
Float constant constant would be more precise if specified as a long float.
Explanation:

The named short floating-point constant cannot be exactly represented. It could be more accurately represented if it were specified as a long floating-point constant. For example, the 1.3E0 cannot be exactly represented, but could be better represented as 1.3D0.

IBM1067I I
UNTIL clause ignored.
Explanation:

If a DO specification has no clause such as TO, BY or REPEAT that could cause the loop to be repeated, then the UNTIL clause will have no effect on the loop and will be ignored.

 
 
    do x = y until ( z > 0 );
      ...
    end;
 
IBM1068I I
Procedure has no RETURNS attribute, but contains a RETURN statement. A RETURNS attribute will be assumed.
Explanation:

If a procedure contains a RETURN statement, it should have the RETURNS attribute specified on its PROCEDURE statement.

 
 
    a: proc;
      return( 0 );
    end;
 
IBM1069I I
The AUTOMATIC variables in a block should not be used in the prologue of that block.
Explanation:

The AUTOMATIC variables in a block may be used in the declare statements and the executable statements of any contained block, but in the block in which they are declared, they should be used only in the executable statements.

 
 
    dcl x fixed bin(15) init(5);
    dcl y(x) fixed bin(15);
 
IBM2800I I
The procedure proc name is not referenced.
Explanation:

The named procedure is not external and is never referenced in the compilation unit. This may represent an error (if it was supposed to be called) or an opportunity to eliminate some dead code.

IBM2801I I
FIXED DEC(source-precision,source-scale) operand will be converted to FIXED BIN(target-precision,target-scale). This introduces a non-zero scale factor into an integer operation and will produce a result with the attributes FIXED BIN(result-precision,result-scale).
Explanation:

Under RULES(IBM), when an arithmetic operation has an operand that is FIXED BIN and an operand that is FIXED DEC with a non-zero scale factor, then the FIXED DEC operand will be converted to FIXED BIN.

IBM2802I I
Aggregate mapping will be done by library call.
Explanation:

This message can be used to help find code that may be very expensive if executed as part of a loop. It may be produced, for example, if your code refers to an element of a structure that uses REFER. If the structure uses multiple REFERs and the element occurs after the last REFER, the single reference to that element may produce multiple copies of this message (because multiple library calls will be made).

IBM2803I I
keyword STRING EDIT statement optimized.
Explanation:

This message is issued when a PUT or GET STRING EDIT statement has been optimized by the compiler so that most of it is done inline.

IBM2804I I
Boolean is compared with something other than ’1’b or ’0’b.
Explanation:

This message will flag statements such as the following, where "true" is a BIT(1) STATIC INIT(’1’b). It would be better if "true" were a named constant, i.e. if it were declared with the VALUE attribute rather than STATIC INIT

 
 
     if ( a < b ) = true then
 
IBM2805I I
For assignment to variable name, conversion from source type to target type will be done by library call.
Explanation:

This message can be used to help find code that may be very expensive if executed as part of a loop or to find code involving conversions of unlike types.

IBM2806I I
Passing a LABEL to another routine is poor coding practice and will cause the compiler to generate less than optimal code.
Explanation:

It is generally very unwise to pass a label to another routine. It would be good to think about redesigning any code doing this.

IBM2809I I
FIXED DEC(source-precision,source-scale) operand will be converted to FIXED BIN(target-precision,target-scale). This introduces 8-byte integer arithmetic into an operation that might be faster if computed in decimal.
Explanation:

If the LIMITS option specifies a maximum FIXED precision greater than 31, then an operation involving a FIXED DEC and a FIXED BIN operand might produce an 8-byte integer result even if both operands are "small". For example, if you add a FIXED DEC(13) and a FIXED BIN(31), the result would be an 8-byte integer (because a FIXED DEC(13) value might be too large to fit in a 4-byte integer). To avoid this, you could apply the DECIMAL built-in function to the FIXED BIN operand.

IBM2810I I
Conversion of FIXED BIN(source-precision,source-scale) to FIXED DEC(target-precision,target-scale) may produce a more accurate result than under the old compiler.
Explanation:

In certain conversions of FIXED BIN(p,q) to FIXED DEC, the old compiler slightly rounded the result if q was positive.

IBM2811I I
Use of PICTURE as DO control variable is not recommended.
Explanation:

If the control variable in a DO loop is a PICTURE variable, then more code will be generated for the loop than if the control variable were a FIXED BIN variable. Moreover, such loops may easily be miscoded so that they will loop infinitely.

IBM2812I I
Argument number argument number to BUILTIN name built-in would lead to much better code if declared with the VALUE attribute.
Explanation:

For functions such as VERIFY(x,y), if y is a constant, it is much better for performance to declare y with the VALUE attribute rather than with the INITIAL attribute.

IBM2814I I
Aggregate mapping for storage allocation will be done by library call.
Explanation:

This message can be used to help find code that may be expensive if invoked many times. This message may be produced for ALLOCATE statements for BASED and CONTROLLED variables with non-constant extents, and it may also be produced for the prologue of PROCEDUREs that use AUTOMATIC variables with non-constant extents.


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)