директива атрибута 'optimize' игнорируется - PullRequest
2 голосов
/ 23 августа 2010

У меня есть проект, для которого оптимизация была установлена ​​на «-Os» для всех файлов через gcc флаги командной строки.Однако я хочу отключить оптимизацию для некоторых методов в одном из исходных файлов.Для этого я пытаюсь указать атрибут оптимизации для этих методов.Однако gcc говорит, что он игнорирует атрибут optimize во время сборки.Кто-нибудь знает, в чем проблема?

class C 
{
public:
    int __attribute__((optimize("-O0"))) foo();
    .
    .
 };

Я использую gcc версии 4.4.3.

Ответы [ 2 ]

3 голосов
/ 23 августа 2010

Бросьте -.Это не требуется (или, вероятно, не ожидается).

1 голос
/ 08 июля 2013

Вы можете использовать оптимизационные прагмы, как описано в http://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-Pragmas.html#Function-Specific-Option-Pragmas

#pragma GCC push_options
#pragma GCC optimize ("-O0")
int foo() {
  return bar;
}
#pragma GCC pop_options
...