COBOL程序B有3个入口点。链接部分包含1个常规区域,然后是3个区域(将其称为link-sect-a,link-sect-b和link-sect-c) Cobol程序A使用条目3调用程序B。在z / OS中,编写代码是完全有效的(并且是正常的)
CALL PROGB-ENTRY3 using common area, link-sect-c
问题似乎出在GnuCobol上,两者都编译后,在入口点3之后,程序B中的任何内容都变得如此简单
DISPLAY 'First 50 bytes in link-sect-c 'link-sect-c(1:50)
导致对link-sect-c的引用崩溃
如果相反,我将更改程序A中的调用(以及程序中的条目3 B包含所有4个参数)
CALL PROGB-ENTRY3 using common area, link-sect-a, link-sect-b, link-sect-c
(即使我不需要link-sect-a或link-sect-b) 代码有效
如果需要,我可以包括2个示例程序,因为它们确实很简单
答案 0 :(得分:0)
我在程序B的编译中添加了 -fsticky-linkage 选项,从而解决了该问题。 (很容易确认。删除该选项并再次编译;重新引入问题)