我在gcc手册中找到了“整数溢出内置函数”,但编译器不知道
'__builtin_sadd_overflow' was not declared in this scope
使用
调用int x=0x7fffffff;
__builtin_sadd_overflow(2,x, &x);
编译器版本是
gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
在i686上。
以下是手册:https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html
答案 0 :(得分:2)
https://gcc.gnu.org/onlinedocs/gcc-4.8.3/gcc/C-Extensions.html(4.8.3版本的文档)没有提到溢出内置函数。未版本化的地址https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html对应于gcc(未来的gcc-5)的开发版本的文档。您可以等到3月或4月,或者开始播放快照,或使用clang's equivalent。