IBM Support

SI79717 - WDS-RPGLE-CMPL-INCORROUT DEBUG STEPS TO EXTRA WHEN-STATEMENT

PTF Cover Letter


PTF ( Program Temporary Fixes ) Cover letter


Order this fix

Abstract

WDS-RPGLE-CMPL-INCORROUT DEBUG STEPS TO EXTRA WHEN-STATEMENT


Pre/Co-Requisite PTF / Fix List

REQ  LICENSED           PTF/FIX  LEVEL

TYPE PROGRAM  RELEASE   NUMBER   MIN/MAX  OPTION
---- -------- --------- -------  -------  ------
PRE  5770SS1  V7R3M0    SI79656   00/00    0000
PRE  5770SS1  V7R3M0    SI76807   00/00    0000
PRE  5770WDS  V7R3M0    SI66739   NONE     0000



NOTICE:
-------
Application of this PTF may disable or render ineffective programs that
use system memory addresses not generated by the IBM translator,
including programs that circumvent control technology designed to limit
interactive capacity to purchased levels.  This PTF may be a prerequisite
for future PTFs.  By applying this PTF you authorize and agree to the
foregoing.

This PTF is subject to the terms of the license agreement which
accompanied, or was contained in, the Program for which you are obtaining
the PTF.  You are not authorized to install or use the PTF except as part
of a Program for which you have a valid Proof of Entitlement.

SUBJECT TO ANY WARRANTIES WHICH CAN NOT BE EXCLUDED OR EXCEPT AS EXPLICITLY
AGREED TO IN THE APPLICABLE LICENSE AGREEMENT OR AN APPLICABLE SUPPORT
AGREEMENT, IBM MAKES NO WARRANTIES OR CONDITIONS EITHER EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON INFRINGEMENT,
REGARDING THE PTF.

The applicable license agreement may have been provided to you in printed
form and/or may be viewed using the Work with Software Agreements (WRKSFWAGR)
CL command.





APAR Error Description / Circumvention

-----------------------------------------------
An ILE RPG program has a SELECT group where a true WHEN
statement is followed by other WHEN statements.

When stepping through the program in debug, after stepping
through the statements following the true WHEN statement, the
debugger steps to the next WHEN statement, and it does not step
to the ENDSL statement.

After the statements for the true WHEN statement, the debugger
should step to the ENDSL statement.

However, the program does not actually execute the next WHEN
statement, as demonstrated by the following program. The second
WHEN statement is true, so the program displays '2'. When the
programmer is on second DSPLY statement in the debugger, a STEP
will go to the third WHEN statement that uses ARR(ZERO). If that
statement was run, it would cause an array index error, but the
program completes normally.

dcl-s x char(1) inz('2');
dcl-s arr char(1) dim(3);
dcl-s zero int(10) inz(0);

select;
when x = '1'; // false
dsply '1';
when x = '2'; // true
dsply '2';
when arr(zero) = 'x'; // Error: Zero index?
dsply '?';
endsl;

*inlr = '1';

CORRECTION FOR APAR SE76749 :
-----------------------------
The ILE RPG compiler will be changed so that after the
statements in a true WHEN block is complete, a STEP in the
debugger will step to the ENDSL operation for the SELECT group.

CIRCUMVENTION FOR APAR SE76749 :
--------------------------------
None.


DESCRIPTION OF PROBLEM FIXED FOR APAR SE77352 :
-----------------------------------------------
Control keyword DEBUG(*CONSTANTS) is specified, enabling
constants to be evaluated in the debugger.

A named constant defined as a single-byte character value does
not display correctly in the debugger.

CORRECTION FOR APAR SE77352 :
-----------------------------
The ILE RPG compiler will be changed so that a named constant
representing a single-character can be evaluated in the
debugger.

CIRCUMVENTION FOR APAR SE77352 :
--------------------------------
None.


DESCRIPTION OF PROBLEM FIXED FOR APAR SE77753 :
-----------------------------------------------
The ILE RPG compiler is enhanced with several new features.

For more information, see
https://www.ibm.com/support/pages/node/6568841

CORRECTION FOR APAR SE77753 :
-----------------------------
The ILE RPG compiler is changed to provide the listed
enhancements.

Warning:  A PTF for the RPG runtime is required if your program
uses the new enhancements.

- On a 7.3 system, you need PTF 5770SS1 SI79656
- On a 7.4 system, you need PTF 5770SS1 SI79655
- On a 7.5 system, you need PTF 5770SS1 SI79642

The runtime PTF is a requisite of the PTF for this APAR, so  the
runtime PTF will always be available at compile time.

However, if the program is restored on another system without
the runtime PTF, the program will fail immediately    with
msgMCH4437, indicating that a program import is not found for
service program QRNXIE or service program QRNXUTIL.

CIRCUMVENTION FOR APAR SE77753 :
--------------------------------
None.


Activation Instructions


None.




Special Instructions


A PTF for the RPG runtime is required if your program uses the new
features.

- On a 7.5 system, you need PTF 5770SS1 SI79642
- On a 7.4 system, you need PTF 5770SS1 SI79655
- On a 7.3 system, you need PTF 5770SS1 SI79656

The runtime PTF is a requisite of the PTF for this APAR, so the
runtime PTF will always be available at compile time.

However, if the program is restored on another system without the
runtime PTF, a call to the program will fail immediately with
msgMCH4437, indicating that one of the following imports is not found:

- For service program QRNXIE: X'0000004B', X'0000004C', X'0000004D',
X'0000004E', X'0000004F, or 'X'00000050'.

For service program QRNXUTIL: X'00000058'.

********************************************************************
THE FOLLOWING ARE SUPERSEDED SPECIAL INSTRUCTIONS. IF THE SUPERSEDED
PTF HAS ALREADY BEEN APPLIED AND ITS SPECIAL INSTRUCTION FOLLOWED,
IT IS NOT NECESSARY TO FOLLOW THAT SPECIAL INSTRUCTION AGAIN.
********************************************************************

SPECIAL INSTRUCTIONS FOR SUPERSEDED PTF SI77165 :
=================================================

A debugger PTF is required at runtime if DEBUG(*CONSTANTS) is
specified.

- On a 7.3 system, you need PTF 5770SS1 SI76807
- On a 7.4 system, you need PTF 5770SS1 SI76808

If the program is debugged on another system without the debugger
debugger PTF, the debugger will not be able to display the value
of the named constant.

SPECIAL INSTRUCTIONS FOR SUPERSEDED PTF SI76899 :
=================================================

After applying this PTF, compiling ILE RPG source that has a FOR-EACH
loop containing an EXSR operation will fail with msgRNF0203 if the
subroutine is specified before the FOR-EACH loop. If you encounter
this problem, move the subroutine so it follows the FOR-EACH loop in
the source.


Default Instructions

THIS PTF CAN BE APPLIED IMMEDIATE OR DELAYED.



Supersedes

PTF/FIX NO(S).  APAR TITLE LINE
--------------  ------------------------------------------------------------
   SI78592      RPGLE-CMPL-MSGRNS9311 LIKEREC(*KEY) WHEN TWO KEYS HAVE SAME
   SI78592      RPGLE-CMPL-MSGMCH4227-RC7 PREFIX('DS.'), *NOUNREF, DEBUG(*IN
   SI77989      RPGLE-CMPL-UNPRED INVALID SECOND PARAMETER FOR %TIMESTAMP
   SI77989      RPGLE-CMPL-INCORROUT OVERLOAD PR CHECKING WHEN PROTOTYPES
   SI77989      RPGLE-CMPL-RC302-MSGRNX0351 XML-INTO DOES NOT SUPPORT UTF-8
   SI77989      RPGLE-CMPL PARM WITH DIM AND OPTIONS(*EXACT) FOR PROCEDURE
   SI77165      RPGLE-CMPL SEVERAL ENHANCEMENTS FOR ILE RPG
   SI76899      RPGLE-RUN NESTED DATA STRUCTURE ARRAYS NOT INITIALIZED CORRE
   SI76899      RPGLE-CMPL-INCORROUT FOR-EACH LOOP STOPS EARLY IF IT HAS EXS
   SI76899      RPGLE-CMPL-INCORROUT CRTSQLRPGI *NOSHOWCPY OMITS CODE FROM /
   SI76899      RPGLE-CMPL-INCORROUT FOR **FREE RDI DOES NOT SHOW EXACT ERRO
   SI76487      REQPREXP CAUSES INVALID "MISSING PROTOTYPE" FOR LINEAR MAIN
   SI76487      RPGLE-CMPL-INCORROUT INZ(*LIKEDS) MAY NOT PROCESS INZ(%SIZE)
   SI76100      RPGLE-CMPL NEW BUILT-IN FUNCTIONS %LOWER, %UPPER, %SPLIT
   SI76100      RPGLE-CMPL-MSGRNF0637 DS NAMED 'IN' NOT ALLOWED IN I/O RESUL
   SI76100      RPGLE-CMPL-F/MSGMCH4227 MISSING DIAGNOSTIC "IF X = %LIST()"
   SI75816      RPGLE-CMPL-INCORROUT /OVERLOAD DIRECTIVE REMOVED WITH CRTSQL
   SI75816      RPGLE-CMPL-INCORROUT A KEY BIGGER THAN THE KEY IN THE FILE
   SI75816      RPGLE-RUN-MSGMCH1210 MCH1210 ERROR FOR %CHECK() - 1 IF
   SI75816      RPGLE-CMPL-INCORROUT INDDS IN AUTOMATIC STORAGE FOR STATIC F
   SI75816      RPGLE-CMPL-INCORROUT MULT(H) WITH FLOAT FACTOR 1 DOES NOT RO
   SI75816      RPGLE-CMPL-MSGRNX0450 MSGRNX0450 UPDATE WITH LIKEREC DS, NO
   SI74612      RPGLE-CMPL-MSGRNF5294 STATUS CODES NOT ALLOWED FOR ON-ERROR
   SI74612      RPGLE-CMPL FALL 2020 ENHANCEMENTS FOR THE ILE RPG COMPILER
   SI74612      RPGLE-CMPL-INCORROUT CRTSQLRPGI /IF DEFINED(*THREAD_CONCURRE
   SI73190      RPGLE-CMPL-MSGRNS0203 B.X PASSED TO LIKE(A.X) OPTIONS(*EXACT
   SI73190      RPGLE-CMPL ENHANCEMENTS FOR %TIMESTAMP, %KDS, LIKEDS
   SI73190      RPGLE-RUN-INCORROUT CALL NOT MONITORED BY ON-ERROR *PROGRAM
   SI73190      RPGLE-CMPL-MSGRNF0203 OVERLOAD CHECK SHOULD IGNORE WARNING M
   SI72283      RPGLE-RUN-INCORROUT ON-EXIT LOCAL FILE WITH NULL-CAPABLE FIE
   SI72283      RPGLE-CMPL-MSGMCH4227-RC7 EVAL-CORR DS IS NULLIND OF ANOTHER
   SI72283      RPGLE-CMPL-F/QRN4MAIN-MSGMCH3601 %CHECKR(*BLANKS)
   SI72283      WDS-RPGLE-CMPL-RC12-MSGMCH4227 ASSIGN *ALL TO %SUBST WITH CC
   SI72283      RPGLE-CMPL-MSGRNF0203 PROTOTYPE LIKE(DS.SUBF) OPTIONS(*EXACT
   SI71534      RPGLE-CMPL ENHANCEMENTS DATA-GEN, OVERLOAD, OPTIONS(*EXACT)
   SI71380      RPGLE-CMPL-INCORROUT ENVVAR TO CHECK FOR ILLEGAL %FIELDS SUB
   SI70910      RPGLE-CMPL-INCORROUT OVERLAY(DS.SUBF) SHOULD NOT BE ALLOWED
   SI70910      RPGLE-CMPL-INCORROUT EMPTY COPY FILE ON LINE 1 OF SOURCE
   SI70910      RPGLE-CMPL-MSGMCH4227-RC7 %CHAR(EMPTY-LITERAL) COMPILE FAILS
   SI70369      RPGLE-RUN-PERFM CONCATENATION OF '' MAY CAUSE
   SI70369      RPGLE-CMPL-INCORROUT WRONG RETURN VALUE IF ON-EXIT HAS NO RE
   SI69572      RPGLE-CMPL INNER NESTED DATA STRUCTURE AFFECTS OUTER EXT-DS
   SI69572      RPGLE-CMPL-UNPRED LINEAR MAIN PI EXTPGM(GLOBAL_CONSTANT)
   SI69572      RPGLE-CMPL-INCORROUT SORTA IS ALLOWED FOR A CONST PARAMETER
   SI69572      RPGLE-CMPL-LOOP MISSING END-DS MAY CAUSE INFINITE LOOP IN
   SI68994      RPGLE-CMPL-F/QRN4MAIN-MSGMCH3601 DS WITH EXTNAME('GDDM')
   SI68994      RPGLE-CMPL-MSGCPF955D RPG PROGRAM HAS TOO MUCH DEBUG DATA
   SI68994      RPGLE-CMPL-INCORROUT TIMESTAMP NOT CORRECT IN PCML IF LEN NO
   SI68994      RPGLE-CMPL-INCORROUT ON-EXIT FAILS TO RUN IF PROC CANCELED
   SI68420      RPGLE-CMPL-MSGMCH4297 MSGMCH4297-RC02 DUPLICATE EXPORTED
   SI68420      RPGLE-CMPL-MSGMCH4227 TEMPLATE DS IN PROCEDURE WITH ON-EXIT
   SI68235      RPGLE-CMPL-MSGMCH4227 MONITOR IN ON-EXIT SECTION
   SI68235      RPGLE-CMPL-INCORROUT XML-SAX(E) MONITORED ERROR IN HANDLER P
   SI68235      RPGLE-CMPL-MSGMCH4227 FILE WITH HANDLER KEYWORD AND O SPECS
   SI67717      RPGLE-CMPL-INCORROUT NESTED DCL-DS ARRAY CHANGES INITIALIZAT
   SI67717      RPGLE-CMPL-INCORROUT %PARMS WITH LIKEFILE PARMS AND OPDESC
   SI67717      RPGLE-CMPL-INCORROUT CONCATENATION WITH HUGE VARYING VALUE
   SI67717      RPGLE MSGMCH1210-OVERFLOW ERROR WITH %DIFF IN A DIVISION
   SI67185      RPGLE-CMPL ENHANCEMENT TO SUPPORT THE DATA-INTO OPERATION CO
   SI66799      RPGLE-CMPL-MSGMCH0601 %PROC CAN CAUSE THE COMPILER TO FAIL
   SI66799      RPGLE-CMPL-INCORROUT NO AF JOURNAL ENTRY FOR FAILED COMPILE
   SI66799      RPGLE-CMPL-INCORROUT PCML MISSING CCSID FOR CHAR PARAMETERS
   SI66799      RPGLE-RUN-MSGRNX0453 IMPLICIT CCSID CONVERSION FOR CONCATENA
   SI66150      RPGLE-CMPL-MSGMCH4227 MISSING DIAG FOR TEMPLATE WITH EXTFILE
   SI66150      RPGLE-CMPL-INCORROUT MSGRNF0369 FOR %PARMNUM WHEN PARM IS NO
   SI66150      RPGLE-CMPL-MSGRNF0202 MSGRNF0202 %CHAR REQUIRES *JOBRUN
   SI66150      RPGLE-CMPL-MSGMCH3203 THIRD PARM OF %TIMESTAMP MUST BE CONST
   SI66150      RPGLE-CMPL SEVERAL ENHANCEMENTS FOR ILE RPG
   SI65575      RPGLE-CMPL-INCORROUT %CHAR WITH MORE THAN 30 DECIMAL PLACES
   SI65575      RPGLE-CMPL-INCORROUT **FREE GENERATED I/O SPECS ARE INCOMPLE
   SI65341      RPGLE-CMPL-MSGRNF0099 CC-UTIL CLEAR GRAPHIC FIELD CCSID(6553
   SI65341      RPGLE-CMPL-LOOP *FREE WITH UNEXPECTED CODE PAST COLUMN 80
   SI64925      RPGLE-CMPL-INCORROUT ON-EXIT NOT RUN WHEN PROCEDURE HAS
   SI64484      RPGLE-CMPL-INCORROUT **FREE SQLRPGLE COMPILE-TIME DATA TRUNC
   SI64484      RPGLE-CMPL-RC12-MSGMCH4227 ASSIGN ('0' OR LOGICAL EXPRESSION
   SI64484      RPGLE-CMPL-MSGRNF0726 CCSID(*JOBRUNMIX) WTIH ALTSEQ
   SI64484      RPGLE-CMPL-MSGMCH3601-T/CHECKMAINEXTPGMSAME EXTPGM BAD PARM
   SI64484      RPGLE-CMPL-INCORROUT INPUT FOR FILE WITH PREFIX('DS.') ALIAS
   SI63822      RPGLE-CMPL-MSGMCH42B0-RCX'010E' ON-EXIT WITH DFTACTGRP(*YES)
   SI63822      RPGLE-CMPL-INCORROUT CVTOPT IN H-SPEC IGNORED WITH OUTPUT(*N
   SI63822      RPGLE-CMPL NESTED DCL-DS, %MAX/%MIN, ALIGN(*FULL) ENHANCEMEN
   SI62957      RPGLE-CMPL-INCORROUT OA HANDLER PROGRAM MISSING FROM DSPPGMR
   SI62957      RPGLE-CMPL-INCORROUT **FREE CTDATA HAS X'00' IN TRAILING BLA
   SI62957      RPGLE-CMPL-MSGRNF0293 /COPY NOT FOUND IF /QSYS.LIB IN RPGINC
   SI62957      RPGLE-CMPL ON-EXIT SECTION TO RUN WHEN PROCEDURE ENDS
   SI62608      RPGLE-RUN-PERFM UNNECESSARY CALLS TO QUSRJOBI DURING *INIT P
   SI62608      RPGLE-CMPL-INCORROUT-MSGRNF0308 CRTSQLRPGI RPGPPOPT(*LVL1/*L
   SI62608      RPGLE-CMPL-INCORROUT NO SOURCE INFO MIXEDCASE SRCSTMF(/QSYS.
   SI61030      RPGLE-RUN-INCORROUT %ELEM RETURNS 0 FOR SUBPROC INDICATOR AR
   SI61030      RPGLE-CMPL-INCORROUT += ASSIGNMENT WHEN RHS HAS MULTIPLE CCS
   SI61030      RPGLE-RUN REMOVING ENDFOR BREAKPOINT REMOVES WRONG BREAKPOIN
   SI61030      RPGLE-RUN-INCORROUT RESET OF SUBFIELD FROM DS WITH A POINTER
   SI60418      RPGLE-CMPL-MSGCPF9549 CRTSQLRPGI COMPILEOPT('OUTPUT(*NONE)')
   SI60418      RPGLE-CMPL-MSGCPF3BC7 XML-INTO or XML-SAX IN CCSID 65535 SOU
   SI60418      RPGLE-RUN-INCORROUT DBGVIEW(*LIST) SHOWS EXTRA TEXT IN STRDB
   SI59847      RPGLE-CMPL-MSGRNF0224 XML-INTO XML-SAX WITH LITERAL OPTIONS
   SI59847      RPGLE-CMPL-INCORROUT UCS-2 WITH OPEN ACCESS WHEN CCSIDS DIFF
   SI59847      RPGLE-CMPL-MSGMCH4227 CHGSRVPGM PRFDTA(*APYALL) KEYED I/O
   SI59847      RPGLE-CMPL-MSGMCH4227-RC12 *ZEROS PASSED TO CONST FLOAT PARM
   SI59847      RPGLE-CMPL-INCORROUT /COPY IN **FREE CRTSQLRPGI+RPGPPOPT NOT
   SI59847      RPGLE-CMPL-MSGRNF5505 CRTSQLRPGI RPGPPOPT **FREE WITH /COPY
   SI59847      RPGLE-CMPL-MSGRNF7544 RESET QUALIFIED MAIN ENTRY PARM SUBFIE

Summary Information

System..............................  i
Models..............................  
Release.............................  V7R3M0
Licensed Program....................  5770WDS
APAR Fixed..........................  View details for APAR SE76749
View details for APAR SE77352
View details for APAR SE77753

Superseded by:......................  View fix details for PTF SI80263
Recompile...........................  Y
Library.............................  QRPGLE
MRI Feature ........................  NONE
Cum Level...........................  NONE


IBM i Support

IBM disclaims all warranties, whether express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. By furnishing this document, IBM grants no licenses to any related patents or copyrights. Copyright © 1996,1997,1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 IBM Corporation. Any trademarks and product or brand names referenced in this document are the property of their respective owners. Consult the Terms of use link for trademark information.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"7.3.0","Product":{"code":"SWG60","label":"IBM i"},"Component":"5770WDS","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
15 June 2022