No Quartus® SOFTWARE II versão 15.0, Nios® O código II compila usando a ferramenta nios2-elf-gcc 4.9. Ao compilar o código em -O2 (ou superior) com a ferramenta nios2-elf-gcc 4.9, a otimização -desreferência fisolate-erroneous-paths será ligado por padrão.
Conforme descrito em
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#Optimize-Options,
-desreferência fisolate-erroneous-paths
Detecte caminhos que desencadeiam comportamento errôneo ou indefinido devido à dereferencing de um ponteiro nulo. Isole esses caminhos do fluxo de controle principal e transforme a declaração com comportamento errôneo ou indefinido em uma armadilha. Este sinalizador é habilitado por padrão em -O2 e superior.
Essa otimização significa que quando a ferramenta detecta o código que está tentando carregar ou armazenar através de um possível ponteiro nulo, ele mudará a instrução de carga ou armazenamento em uma instrução de trap. Isso pode causar falha no programa embarcado sem um aviso de tempo de compilação.
Se o seu projeto contiver dados válidos no endereço zero, compile seu código usando o seguinte comutador para evitar problemas relacionados a desreferências de ponteiro nulo:
-fno-delete-null-pointer-checks