Macos Mac xdebug make警告:不兼容的指针类型正在初始化';jmp_buf*';(又名int(*)[37]';)
当我在Mac(OS X 10.10.2)上的xdebug上运行Macos Mac xdebug make警告:不兼容的指针类型正在初始化';jmp_buf*';(又名int(*)[37]';),macos,makefile,xdebug,Macos,Makefile,Xdebug,当我在Mac(OS X 10.10.2)上的xdebug上运行make时,我得到了这个结果: 生成已完成,但是否有任何与此警告有关的问题 这是一个bug,应该修复,但在这种情况下,它似乎是无害的 查看,我们看到一个指针(指向38个整数的数组)从baild复制到一个名为original\u baild的临时变量(指向37个整数的数组)。不会对该临时变量执行任何操作,指针下方的几行将被复制回原始变量bailad原始救助计划不再使用 由于无法通过不兼容的原始救助变量访问阵列,我看不到任何损坏风险 修复
make
时,我得到了这个结果:
生成已完成,但是否有任何与此警告有关的问题 这是一个bug,应该修复,但在这种情况下,它似乎是无害的 查看,我们看到一个指针(指向38个整数的数组)从
baild
复制到一个名为original\u baild
的临时变量(指向37个整数的数组)。不会对该临时变量执行任何操作,指针下方的几行将被复制回原始变量bailad
<代码>原始救助计划不再使用
由于无法通过不兼容的原始救助
变量访问阵列,我看不到任何损坏风险
修复方法是用Zend/Zend.h
中定义的jmp_buf
宏替换jmp_buf
类型:
#ifdef HAVE_SIGSETJMP
# define SETJMP(a) sigsetjmp(a, 0)
# define LONGJMP(a,b) siglongjmp(a, b)
# define JMP_BUF sigjmp_buf
#else
# define SETJMP(a) setjmp(a)
# define LONGJMP(a,b) longjmp(a, b)
# define JMP_BUF jmp_buf
#endif
因此,第900行内容如下:
JMP_BUF *original_bailout = EG(bailout);
JMP_BUF *original_bailout = EG(bailout);