インテル® Quartus®® II ソフトウェア・バージョン 15.0、Nios® nios2-elf-gcc 4.9 ツールチェーンを使用して II コードをコンパイルします。nios2-elf-gcc 4.9 ツールチェーンで -O2 (またはそれ以降) のコードをコンパイルする場合、最適化 -fisolate-erroneous-paths-dereference デフォルトではオンに切り替わります。
で説明されているように
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options,
-fisolate-erroneous-paths-dereference
null ポインターの逆参照により、誤った動作または未定義の動作を引き起こすパスを検出します。これらのパスをメインの制御フローから分離し、誤った動作または未定義の動作でステートメントをトラップにします。このフラグはデフォルトで -O2 以降で有効になっています。
この最適化は、ツールチェーンが可能な null ポインターを介してコードの読み込みまたは格納を試みているのを検出すると、load ステートメントまたは store ステートメントをトラップ命令に変更することを意味します。これにより、コンパイル時の警告なしにエンベデッド・プログラムがクラッシュする可能性があります。
デザインにアドレスゼロの有効なデータが含まれている場合、次のスイッチを使用してコードをコンパイルして、NULL ポインターの逆参照に関連する問題を回避してください。
-fno-delete-null-pointer-checks