適用範囲:DS-5, RealView Development Suite (RVDS)
シナリオ:
ARM compilationツールのヘッダファイル内の__ESCAPE__マクロはmath.hとstdint.hを制限します。しかしながら、__ESCAPE__マクロ自身はどのヘッダファイルにおいても定義されていません。これはmath.hまたはstdint.hを制限したい"#include"がコンパイルモジュール(またはプリプロセス済みモジュール)においてARMではないコンパイラではコンパイルに失敗することを意味します。
回答:
ARMコンパイラ特有の__ESCAPE__ビルトインは--strictモードであっても、特定の拡張言語機能(ullのような)を標準ヘッダで許可します。
この内部機能の詳細や振る舞いはコンパイラのリリースごとに変わる可能性があります。これはエンドユーザにおいて直接使われることを意図していません。
回避策:
厳密な言語使用の遵守が問題でないなら、__ESCAPE__は以下のようにdefineを外すことができます:
#define
__ESCAPE__
(x) x