Как я могу скрыться “определенный, но не используемые” предупреждения в GCC?

Ошибка анализа: синтаксическая ошибка, неожиданный T_PAAMAYIM_NEKUDOTAYIM

Оператор разрешения области также называется «Paamayim Nekudotayim» с иврита פעמיים נקודתיים. это означает «двойная двоеточие» или «двойная точка дважды».

Эта ошибка обычно возникает, если вы случайно поместите :: в свой код.

Вопросы, относящиеся:

Документация:

60
задан Jason Plank 17 August 2011 в 16:26
поделиться

5 ответов

Просто видел этот поток при поиске решений этой проблемы. Я отправляю здесь для полноты решение, которое я нашел...

флаги компилятора GCC, которые управляют неиспользованный предупреждения , включают:

-Wunused-function
-Wunused-label
-Wunused-parameter
-Wunused-value
-Wunused-variable
-Wunused (=all of the above)

Каждый из них имеет соответствующую отрицательную форму с "нет -" вставленный после W, который выключает предупреждение (в случае, если это было включено - Стена, например). Таким образом в Вашем случае необходимо использовать

-Wno-unused-function

, Конечно, это работает на целый код, не только, время компиляции утверждает. Для функционально-специализированного поведения взгляните на Функциональные атрибуты .

95
ответ дан leonbloy 24 November 2019 в 17:27
поделиться

Решение для GCC, не вызывающего конфликты с другими компиляторами

#ifdef __GNUC__
#define VARIABLE_IS_NOT_USED __attribute__ ((unused))
#else
#define VARIABLE_IS_NOT_USED
#endif

int VARIABLE_IS_NOT_USED your_variable;
47
ответ дан 24 November 2019 в 17:27
поделиться

Можно создать пустой оператор и бросить результат освободить. Это портативно через компиляторы, и gcc не даст Вам, любые предупреждения, даже с -Wall и -Wextra включили. Например:

int var;    // var is not used
(void)var;  // null statement, cast to void -- suppresses warning

А общая техника должна создать макрос для этого:

#define UNUSED(x) ((void)(x))

int var;
UNUSED(var);
32
ответ дан Adam Rosenfield 24 November 2019 в 17:27
поделиться

На это трудно ответить, не зная, что детали Ваших помех утверждают макросы. Возможно, Вы могли измениться на различный макрос для предотвращения этой проблемы? Вы могли или добавить 'неиспользованный' атрибут к макросу, как был предложен, или Вы могли использовать другую форму CASSERT ().

Вот описания нескольких альтернатив:

http://www.jaggersoft.com/pubs/CVu11_3.html

http://blog.kowalczyk.info/kb/compile-time-asserts-in-c.html

http://www.pixelbeat.org/programming/gcc/static_assert.html

3
ответ дан Nathan Kurz 24 November 2019 в 17:27
поделиться

Как насчет -Wunused-label?

2
ответ дан Tamas Czinege 24 November 2019 в 17:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: