Fra*_*ank 3 c++ compiler-construction optimization divide-by-zero
我刚刚发现了一个奇怪的错误,只有在启用优化时才会发生错误(g++ -O2).它是Arithmetic exception在以下代码中,当interval设置为零时(从命令行参数):
for(int i = 0; i < n; ++i) {
if((i + 1) % interval == 0) { // exception here
DoSomething();
}
}
Run Code Online (Sandbox Code Playgroud)
很明显,模零操作会抛出一个被零除的异常,但为什么只有在代码编译时才会启用优化?
| 归档时间: |
|
| 查看次数: |
1957 次 |
| 最近记录: |