GCC和Clang:关闭纯粹的优化

时间:2014-05-09 21:28:44

标签: gcc optimization const clang pure-function

我正在运行一组比较不同libc字符串函数的基准测试。问题是GCC和Clang正在优化循环中的计算,因为函数被标记为“纯”和“常量”。是否有某种方法可以关闭优化或绕过它?

1 个答案:

答案 0 :(得分:0)

我解决了!解决方案很讨厌,但它确实有效:

volatile int x;
for (...)
{
    // ...
    x = (int)f(args);
}

我从不使用x的值,所以演员不会成为问题。更好的是,现在我没有因为没有使用return value of function declared with pure attribute而感到错误。