GCC: Разорвать компиляцию на "управление достигает конца не пустой функции" - PullRequest
3 голосов
/ 23 марта 2012

Когда я добавляю

#pragma GCC diagnostic error "-Wreturn-type"

, компилятор выдает предупреждения, а не ошибки для каждого пропущенного return.Как я могу превратить это предупреждение в ошибку?

Тестовый код:

#pragma GCC diagnostic error "-Wreturn-type"

int foo(int x)
{
    if (x) return 8;
}

int main(int narg, char* arg[])
{
    foo(narg);
}

Я пробовал с

i686-apple-darwin10-g ++ - 4.2.1 (GCC) 4.2.1 (Apple Inc., сборка 5666) (точка 3)

i686-apple-darwin10-llvm-g ++ - 4.2 (GCC) 4.2.1 (на основе Apple Inc. build 5658) (LLVM build 2335.6)

ОБНОВЛЕНИЕ: Я попытался -Werror=return-type, как предложено @sastraxi, но это имеет тот же эффект.

1 Ответ

7 голосов
/ 23 марта 2012

Попробуйте передать -Werror=return-type в gcc!

...