我想在 C++ 编译中禁用无用代码消除优化。有没有办法通过保留所有其他 -O 优化来禁用此特定优化。我尝试使用 -fnodce 但它不起作用。
更新(从评论中复制):我有类似的东西
timer t;
t.start();
for(int i=1;i<=1000;++i)
object t;
t.stop();
我想测量对象 t
的构建时间,但什么都不做。我不想通过创建 1000 个对象的数组来做到这一点。有办法解决吗?
最佳答案
在构造的对象上添加“volatile”限定符,这告诉编译器假设构造存在副作用,从而防止对其进行优化。即:
timer t;
t.start();
for(int i=1;i<=1000;++i)
volatile object t;
t.stop();
关于c++ - 在 gcc 编译器中禁用特定优化(死代码消除),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8988291/