Reentering COBOL programs after stack frame collapse

A stack frame collapse occurs when the condition manager skips over one or more active routines and execution resumes in an earlier routine on the stack. This can occur due to either of the following:
  • An explicit GOTO out of block issued from a C or PL/I routine
  • Moving the resume cursor using the CEEMRCR callable service and requesting a resume
Language Environment resets any intervening COBOL programs from an active to inactive state, provided they are the following:
  • VS COBOL II programs compiled with the CMPR2 compiler option
  • VS COBOL II programs compiled with NOCMPR2 that do not use nested programs
  • COBOL for OS/390 & VM, COBOL for MVS & VM or COBOL/370 programs compiled with the CMPR2 compiler option or
  • COBOL for OS/390 & VM, COBOL for MVS & VM and COBOL/370 programs compiled with NOCMPR2 that do not use the combination of the INITIAL attribute, nested programs, and file processing in the same compilation unit
  • Enterprise COBOL for z/OS programs that do not use the combination of the INITIAL attribute, nested programs, and file processing in the same compilation unit

After a stack frame collapse, the routines listed above can be reentered.

Language Environment issues a warning message during stack frame collapse for each intervening COBOL program that does not adhere to the above restrictions. In addition, after the GOTO or resume is performed, any attempt to re-enter these programs is diagnosed as an attempted recursive entry error.