Почему GCC 4.2.1 игнорирует #pragma Диагностика GCC игнорируется "-Wcast-qual" при определенных условиях? - PullRequest
3 голосов
/ 17 октября 2011

Вот моя тестовая программа:

#include <stdio.h>
#pragma GCC diagnostic ignored "-Wcast-qual"

static void proc(char *buf)
{
    printf("buf=%p\n",buf);
}

int main(int argc,char **argv)
{
    const char *cbuf;
    char *buf = (char *)cbuf;
    proc(buf);
    return(0);
}

Вот моя компиляция:

$ g++ -Wcast-qual    x.cpp
x.cpp: In function ‘int main(int, char**)’:
x.cpp:13: warning: cast from type ‘const char*’ to type ‘char*’ casts away constness
$ 

А вот компиляция без -Wcast-qual:

$ g++ x.cpp
$ 

Я использовал #pragma GCC diagnostic ignored в других местах моего кода без проблем.Здесь это не работает.Может кто-нибудь сказать мне, почему?

1 Ответ

0 голосов
/ 23 апреля 2013

Это ошибка компилятора на Mac.GCC 4.7.2 в Linux не имеет этой проблемы.Ни один не делает Clang ++.На Mac вы должны попытаться использовать clang ++, а не g ++.

Apple следует обновить свой компилятор.

...