cobol demo1.cbl /anim /nognt;UNIX:
cob demo1.cbl
cblscan64 demo1UNIX:
cobscan64 demo1これにより次のレポートが生成されます。
Processing file 'demo1.int' **Unsafe modification of pointer at (file: demo1.cbl, line: 9) Pointer : PP (file: demo1.cbl, def: 6) Finished file 'demo1.int' - pointer problems could exist
demo1.cbl のソースを確認します。プログラムの行 9 には次が含まれています。
move low-values to ppg
このような、ポインター pp を含んでいるグループ項目の変更は、ポインター pp によって占有されているメモリが英数文字データ項目として扱われるので危険です。この場合、LOW-VALUE が移動されるので、変更は必要ありません。ただし、行 9 でコードを次のように変更するのが望ましい方法です。
set pp to null
COBOL では、ポインターが変更された位置を特定するのが難しい場合があります。Scan64 -m オプションを使用することで、ポインターを変更したコードを特定しやすくなります。
次に例を示します。
上記により、次の内容が生成されます。
Processing file 'demo1.int' **Unsafe modification of pointer at (file: demo1.cbl, line: 9) Modifier : PPG (file: demo1.cbl, def: 5) Pointer : PP (file: demo1.cbl, def: 6) Finished file 'demo1.int' - pointer problems could exist