0

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

4

1 回答 1

0

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

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

我从不使用 x 的值,所以演员表不会成为问题。更好的是,现在我没有收到关于不使用return value of function declared with pure attribute.

于 2014-05-09T21:42:43.687 回答