-unaligned_pointer_for_ca78k0r【V1.06以降】


ポインタ間接参照を1バイト単位でアクセスします。

[指定形式]

-unaligned_pointer_for_ca78k0r

 

-

省略時解釈

2バイトの整列条件を持つ型へは,2バイトアクセスで間接参照するコードを生成します。

[詳細説明]

-

本オプションは,CA78K0Rからのコンパイラ移行支援が目的であり,CA78K0Rで同機能を使用している場合に指定します。本オプションを指定した場合,オブジェクト・サイズが大きくなり,実行速度が低下します。

-

volatile指定がない2バイトの整列条件を持つ型へのポインタが奇数番地を指す可能性がある場合に,1バイトアクセスで間接参照するコードを生成します。volatile指定がある場合は,2バイトの整列条件を持つ型が奇数番地を指していたとしても,2バイトアクセスで間接参照します。

-

CC-RLにおいて構造体パッキング時に2バイトの整列条件がなくなるのは構造体および構造体のメンバだけで,int型など他の型は2バイトの整列条件を持ち,それらの型へのポインタ参照も2バイトの整列条件を持ちます。よって,パッキングしたメンバのポインタをパッキング対象でない型へのポインタに代入した場合,通常は動作を保証しません。本オプションを指定することでポインタの間接参照が1バイトアクセスとなるため,パッキングした構造体のメンバをポインタで間接参照できるようになります。