Dov*_*iin 6 c++ gcc gnu g++ integer-overflow
来自GNU的网站:
-ftrapv
This option generates traps for signed overflow on addition, subtraction, multiplication operations.
-fwrapv
This option instructs the compiler to assume that signed arithmetic overflow of addition, subtraction and multiplication wraps around using twos-complement representation. This flag enables some optimizations and disables others.
Run Code Online (Sandbox Code Playgroud)
我有两个问题.1)哪些选项更适合性能?2)当-ftrapv定义说它产生"陷阱" 时,它意味着什么?这是否意味着例外?(我猜不是,但值得问.)
资料来源:https://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Code-Gen-Options.html
小智 9
该整点这两个选项是给优化器更小的回旋余地比通常有.因此,除非您在优化器中遇到错误,否则最快的应该是两者都不使用,优化器假定您的代码没有任何溢出,并且不会发出代码来处理溢出.
当-ftrapv定义说它产生"陷阱"时,它意味着什么?这是否意味着例外?
它并不意味着C++异常.它是依赖于目标的,但假设是x86,这意味着GCC运行时库会引发SIGABRT,这通常会中止您的程序.在其他平台上,它可能会使用导致硬件异常的特殊CPU指令.它主要用于调试目的,也许在少数情况下是安全的,其中溢出后继续的风险大于程序突然终止的风险.
| 归档时间: |
|
| 查看次数: |
2440 次 |
| 最近记录: |