ある変数を別の変数に続いて宣言する場合、ストレージ内でそれらの変数が隣り合っている、または 2 番目の変数がストレージ内で 1 番目の変数の後にあると推測してはなりません。
例えば以下のコードの場合、変数 a に割り振られているストレージは変数 b に割り振られているストレージの直後にない可能性もあるので、この代入は他の変数に割り振られているストレージの 100 バイトをオーバーレイすることがあり得ます。
dcl a char(100);
dcl b char(100);
dcl c char(200) based;
addr(a)->c = '';
実際には変数 b が未使用の場合、コンパイラーはその変数にストレージをおそらく割り振りません。