A fix is available
APAR status
Closed as program error.
Error description
A compare of boolean values returned from an EGL function are be ing incorrectly evaluated. Example EGL code: function main() a int = 0; b int = 1; syslib.writeStdout('Call Function for evaluation'); if (!(checknum(a) ?? checknum(b))) SysLib.writeStdout('CPC-1'); end if (!checknum(a) || !checknum(b)) syslib.writeStdout('CPC-2'); end if (!(a == 1 ?? b == 1)) SysLib.writeStdout('CPC-3'); end if (a != 1 || b != 1) SysLib.writeStdout('CPC-4'); end end function checknum(s int) returns (boolean) if (s == 1) return(true); else return(false); end end The first check of 'if (!(checknum(a) ?? checknum(b)))' evaluate s to false and does not execute the writeStdout when checknum(a) is returning FALSE and checknum(b) is returning TRUE. This behavior can also be seen in RBD 7.1.0.3.
Local fix
Problem summary
The equivalent statements code produced by the IRs was incorrect, causing the wrong code to be generated.
Problem conclusion
I have changed the algorithm so that the "not" condition is handled correctly.
Temporary fix
Comments
APAR Information
APAR number
PK87900
Reported component name
RBD EGL FOR COB
Reported component ID
5724S5001
Reported release
710
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2009-06-03
Closed date
2009-07-24
Last modified date
2009-07-24
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
RBD EGL FOR COB
Fixed component ID
5724S5001
Applicable component levels
R710 PSN
UP
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.1","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
06 December 2021