デモンストレーション プログラム demo3.cbl は、スキャンされるプログラム内でポインターの暗黙的な定義を作成するためにプロトタイプを使用する方法、および非互換パラメーターのレポート方法を示しています。
cobol demo3.cbl /anim /nognt;UNIX:
cob -a demo3.cblこのプログラムで注視すべきパラメーターは、ptrnum-g グループ項目です。このプログラムで使われる各種の呼び出しのプロトタイプなしに、このソース ファイルは Scan64 を問題なく渡します。
cobscan64 demo3UNIX:
cobscan64 demo3これにより次のレポートが生成されます。
Processing file 'demo3.int' Finished file 'demo3.int' - pointer usage is OK
cblscan64 -m -t demoproto.cpy demo3UNIX:
cobscan64 -m -t demoproto.cpy demo3次のレポートが得られます。
Processing file 'demo3.int'
**Possible unsafe modification of 'BY REFERENCE' pointer parameter
**in CALL 'CBL_ALLOC_MEM' statement at (file: demo3.cbl, line: 10)
Modifier : PTRNUM-G (file: demo3.cbl, def: 5)
Pointer : MEM-PTR a formal parm
(file: demoproto.cpy, def: 17, ref: 29, no: 1)
in CALL prototype of CBL_FREE_MEM
(file: demoproto.cpy, def:28)
as implicitly def'd by CALL at (file: demo3.cbl, line: 10)
**Possible unsafe modification of 'BY VALUE' pointer parameter
**in CALL 'CBL_FREE_MEM' statement at (file: demo3.cbl, line: 13)
Modifier : PTRNUM-G (file: demo3.cbl, def: 5)
Pointer : MEM-PTR a formal parm
(file: demoproto.cpy, def: 17, ref: 29, no: 1)
in CALL prototype of CBL_FREE_MEM
(file: demoproto.cpy, def:28)
as implicitly def'd by CALL at (file: demo3.cbl, line: 13)
**Unsafe modification of pointer at (file: demo3.cbl, line: 17)
Modifier : PTRNUM (file: demo3.cbl, def: 6)
Pointer : MEM-DUMMY-PTR
(file: demoproto.cpy, def: 19)
of formal parm MEM-DUMMY-PTR-G
(file: demoproto.cpy, def: 18, ref: 32, no: 1)
in CALL prototype of CBL_DUMMY_ALLOC_MEM
(file: demoproto.cpy, def:31)
as implicitly def'd by CALL at (file: demo3.cbl, line: 15)
Finished file 'demo3.int' - pointer problems could exist
このレポートには 2 種類の警告が含まれています。