PJ40290: Z/TPFDF SPMS DO NOT FLAG A MISSING #ESUB AFTER #SUBR
Closed as program error.
See Problem Summary.
APAR NUMBER: PJ40290 PRODUCT: z/TPF FUNCTIONAL AREA: MISC SHIPPED IN PUT: 9 ABSTRACT: Additional error checks should be added to notify users if certain z/TPFDF structured programming macro (SPM) constructs are incomplete PACKAGE CONTENTS: Source Segments: (C) base/macro/finis.mac Object Only Binaries: None. Configuration Independent Binaries: None. Support Files: None. OTHER BINARIES TO BUILD: NO None. COMMENTS: Additional checking should be added to check for z/TPFDF structured programming macro (SPM) application coding errors. In particular: - If a #SUBR SPM is coded following another #SUBR SPM (that is, the #ESUB SPM is missing or in the wrong place), an informational MNOTE (severity *) is generated (#SUBR SHOULD NOT BE NESTED WITHIN ANY SPM FIGURE). Because this MNOTE is informational, it can easily be missed, leading to unpredictable application behavior. This should be flagged as a higher severity MNOTE in the assembly. - If an #IF SPM is missing a corresponding #EIF SPM in an application, a "** ASMA044E Undefined symbol " error is generated. It would be helpful if a message was also generated to indicate that the problem was that an #EIF is missing. - If a #CAST or #DO SPM is missing a corresponding #ECAS or #EDO SPM, respectively, the user is not notified that the SPM structure is incomplete. As a result, the application may not behave as expected.
SOLUTION: finis.mac has been updated so that severity 4 MNOTE ("SPM NESTING STACK NOT EMPTY-#EIF,#EDO,#ECAS OR #ESUB MISSING") will be generated if any #IF, #DO, #CAST, or #SUBR SPM is not coded with a corresponding #EIF, #EDO, #ECAS, or #ESUB, respectively. Furthermore, with co-requisite z/TPFDF APAR PM67148, the existing informational MNOTE "#SUBR SHOULD NOT BE NESTED WITHIN ANY SPM FIGURE" has been changed to be a severity 4 MNOTE: "INCORRECT NESTING OF #SUBR MACRO OR MISSING #ESUB". COREQS: YES PM67148 MIGRATION CONSIDERATIONS: YES Application programming interface (API) changes: Any application that is coded with an #IF, #DO, #CAST, or #SUBR SPM that does not have a corresponding #EIF, #EDO, #ECAS, or #ESUB will now generated an MNOTE 4 "SPM NESTING STACK NOT EMPTY-#EIF,#EDO,#ECAS OR #ESUB MISSING". This means that object code may no longer be generated and any such applications will need to be updated as a result. BUILD COMMANDS AND INSTRUCTIONS: NO None. UPDATED INFORMATION UNITS: NO None. See your IBM representative if you need additional information. DOWNLOAD INSTRUCTIONS: http://www.ibm.com/software/htp/tpf/maint/maintztpf.html APAR URL: http://www.ibm.com/software/htp/tpf/ztpfmaint/put9/PJ40290.htm
Reported component name
Reported component ID
NoSpecatt / Xsystem
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
Fixed component ID
Applicable component levels