LINUX.ORG.RU

Убрать расширеные сообщения об ошибках GCC

 


0

1

С некоторых пор GCC стал выводить сообщения об ошибках в таком виде

main.c:139:17: warning: 'cnt_1' defined but not used [-Wunused-variable]
 static uint32_t cnt_1 = 0;
                 ^
main.c:140:17: warning: 'cnt_2' defined but not used [-Wunused-variable]
 static uint32_t cnt_2 = 0;
                 ^

Можно ли избавиться от лишнего мусора с указанием конкретного места?

Быстрый поиск ничего полезного не дал.

★★★★

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

Вот плюсую. все давно хвалили шланг за отличные предупреждения, тут это начинают запиливать в гцц и... народ жалуется 😃

класс 😆

ТС, лучший сбособ избавиться от лишнего мусора в выводе гцц - исправить код.

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

А можно не умничать?

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

А смысла от этого «сервиса» вообще никакого.

alexru ★★★★
() автор топика

ну а как костыль - можешь просто грепать выхлоп по warning или error, строка с кодом, очевидно, исчезнет.

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

Я не против если это отключаемо, некоторые любят такой изврат. Мне лично достаточно «main.c:140:17:».

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

Да ладно, если не отключаемо, то будем терпеть этот бред.

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

При отладке мне нужно комментировать части кода, которые используют эти переменные

И что, не хватает сил дописать нужных дефайнов?

А смысла от этого «сервиса» вообще никакого.

Очень даже полно смысла: -Wall -Werror позволяют не прозевать грубых ошибок.

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

Кстати, в чужой код иногда приходится такие костыли вставить, если не хочешь или не можешь его до ума довести. У меня в одной штуке вот такое есть:

#pragma GCC diagnostic ignored "-Wunused-function"
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-braces"
#pragma GCC diagnostic ignored "-Wsequence-point"
#pragma GCC diagnostic ignored "-Wpointer-to-int-cast"
#pragma GCC diagnostic ignored "-Wimplicit-function-declaration"

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

Это временная отладка, а не постоянный отладочный код. Нужно на минуту отключить часть логики и при этом не прозевать важные сообщения. При этом удобно глазами пробежаться по списку и убедиться, что там ничего «плохого» нет.

alexru ★★★★
() автор топика

Понимаю, конечно, что некропостинг, но всё же

В GCC есть расширение unused. лепишь просто

__attribute__((__unused__))
и всё.

RisuX3
()
#ifdef __GNUC__
#  define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))
#else
#  define UNUSED(x) UNUSED_ ## x
#endif

#ifdef __GNUC__
#  define UNUSED_FUNCTION(x) __attribute__((__unused__)) UNUSED_ ## x
#else
#  define UNUSED_FUNCTION(x) UNUSED_ ## x
#endif

и делаешь

void func_1 ( int UNUSED ( a ) );
typedef void ( void * func_t ) ( int a );
void func_2 ( func_t UNUSED_FUNCTION ( func_1 ) );
punya ★★
()
Последнее исправление: punya (всего исправлений: 4)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.