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,

Другие вопросы по тегам