fbounds チェックを機能させようとしましたが、成功しませんでした。次のエラーが表示されます。
/tmp/cczxKZzn.s: アセンブラ メッセージ:
/tmp/cczxKZzn.s:48: エラー: 「プッシュ」の無効な命令サフィックス
/tmp/cc9xD8T3.s:125: エラー: `pop' の無効な命令サフィックス
私のメイクファイルは次のようになります(単純なメイクファイルでは、すべてが適切にコンパイルされています):
all: error check
error: error.c
/usr/local/gcc-4.0.2/bin/gcc -fbounds-checking -g -Wall -pedantic $< -o $@
.PHONY: clean check
clean:
-rm error
check: error
./error
そのコードはアセンブラとは関係がないので、どうすればよいかわかりません。アセンブラーの問題は、そのトピックに関する Google 検索で確認できる唯一の問題です。
たとえば、配列の外側にあることを確認する他のソリューションを提案できますか? など(これは私のerror.cです):
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[1][10];
a[0][11]=42;
return 0;
}
編集。バージョンに互換性がない可能性があります。gcc 4.4+ がインストールされており、少し変更された gcc 4.0.2 へのパスでそれを行っていますか?