GCC и Clang: отключить чистую оптимизацию
Я запускаю ряд тестов, сравнивающих различные строковые функции libc. Проблема в том, что GCC и Clang оптимизируют вычисления в циклах, потому что функции помечены как "pure" и "const". Есть ли способ отключить эту оптимизацию или обойти ее?
1 ответ
Решение
Я решил это! Решение было неприятным, но оно работает:
volatile int x;
for (...)
{
// ...
x = (int)f(args);
}
Я никогда не использую значение x, поэтому приведение не будет проблемой. Еще лучше, теперь я не получаю ошибки о неиспользовании return value of function declared with pure attribute
,