LINUX.ORG.RU

gcc - warnings


0

0

Как в GCC отключить определенный варнинг для какого-то
куска кода ?
Ничего в доках на эту тему найти не могу :(

В гугле только виндовые примеры
#pragma warning(push)
#pragma warning(disable:nnnn)
...code...
#pragma warning(pop)

которые в GCC работать не хотят

ex_var.c:215: warning: ignoring #pragma warning
ex_var.c:216: warning: ignoring #pragma warning
ex_var.c:217: warning: dereferencing type-punned pointer will break strict-aliasing rules
ex_var.c:238: warning: ignoring #pragma warning

Раскажите как решить вопрос,
или пните к доке где это описано.

anonymous

Ответ на: комментарий от anonymous

там еще перенаправлять 2>&1 придется:)

dilmah ★★★★★
()
Ответ на: комментарий от ska

2 ska

Ты что-ли винюзер ?
Знаешь как сделать раскажи
в мане нету описания как это сделать.

anonymous
()
Ответ на: комментарий от rei3er

2 rei3er

Мне нужно именно для конкретного куска кода если это не ясно из вопроса.

anonymous
()
Ответ на: комментарий от ska

> windows user detected.
> man gcc

а что-то более конкретное реальные пацаны с лора в состоянии родит?

bash-3.00$ man gcc | grep pragma
Warn when a #pragma directive is encountered which is not under-
even be issued for unknown pragmas in system header files. This
pragmas in system headers---for that, -Wunknown-pragmas must also
using C99’s "FENV_ACCESS" pragma. This command line option will
overridden by the "shortcall" function attribute, or by "#pragma

ps: по теме #pragma warning( disable : <номер предупреждения> )

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

2 klalafuda
Спасибо, однако только вот, как я уже написал
в вопросе мой gcc 4.1.2 ругуеться на это.

И тогда встает еще одна проблемма
где взять таблицу соответствий кодов и варнингов
для gcc.

anonymous
()
Ответ на: комментарий от anonymous

> 2 klalafuda Спасибо, однако только вот, как я уже написал в вопросе мой gcc 4.1.2 ругуеться на это.

да, судя по всему, gcc действительно не очень любит прагмы включая выключение warning-ов. тогда AFAIU остается лишь выключать их через ключики вызова gcc по имени.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от aton

2 aton

В общемто это идея пришла сразу.
Только вот иногда замысел програмера
компилер не в силах оценить, на что и ругаеться.
В общем некоторые варнинги нельзя пофиксить.

Млин да полюбому должна быть маза отключить
чет мне невериться что только из командной строки можно...

anonymous
()
Ответ на: комментарий от anonymous

> Только вот иногда замысел програмера компилер не в силах оценить, на что и ругаеться.

Если вас не способен понять компилятор, что уж говорить о коллегах..

Приведите пример. Я на С++ написал конечно не так много кода, но тысяч 50 написал, и Warnings отключал только один раз - в MSVC, причём это было связано с каким то багом SDK, уж не помню каким.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

unsigned char *ptr, *lPtr, *xxx, *sPtr = data;
u.uNum = strtol(ptr + 6, (char **) &xxx, 10);

Последняя строка вызывает варнинг
warning: dereferencing type-punned pointer will break strict-aliasing rules

можно сменить (char **) на (unsigned char **)
только вот тогда будет другой варнинг

anonymous
()
Ответ на: комментарий от anonymous

> Последняя строка вызывает варнинг > warning: dereferencing type-punned pointer will break strict-aliasing rules

http://www.cellperformance.com/mike_acton/2006/06/understanding_strict_aliasi...

> можно сменить (char **) на (unsigned char **) > только вот тогда будет другой варнинг

А если сменить unsigned char на char ?

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Тогда нарушиться логика и математика других
частей программы.

Как-то жаль что нельзя отключить
варнинги на определенный кусок кода,
или никто не знает как это сделать.

anonymous
()
Ответ на: комментарий от anonymous

у меня нет никаких warning-ов
да и не вижу причин для них
GCC 4.1.2

rei3er
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.