我试图让 fbounds 检查工作,但我没有成功。我收到以下错误:
/tmp/cczxKZzn.s:汇编程序消息:
/tmp/cczxKZzn.s:48:错误:“push”的指令后缀无效
/tmp/cc9xD8T3.s:125:错误:“pop”的指令后缀无效
虽然我的makefile看起来像这样(使用简单的makefile,一切都在正确编译):
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
由于该代码与汇编程序无关,我不知道该怎么做。汇编器问题是我在谷歌搜索该主题时唯一能看到的问题。
您能否提出其他解决方案,例如检查是否位于数组之外?如(这是我的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 的路径来执行此操作?