Есть ли переключатель для отключения триграфов с лязгом?
Вопрос
У меня есть (устаревший) код, который я создаю с помощью clang впервые.Код выглядит примерно так:
родовое слово Clang выдает следующее предупреждение (ошибка с кодом -Werror
):
Очевидно, что код генерирующего кода не предназначен для использования в качестве триграфа, поэтому я хочу полностью отключить триграфы (источник не использует их намеренно нигде).
Я пробовал генерировать код кода, но это не вариант:
родовое слово Я могу отключить предупреждение о триграфах с помощью ??>
, но я не хочу, чтобы преобразование триграфа вообще происходило.
ПРИМЕЧАНИЕ. Триграфы были включены как непреднамеренный побочный эффект использования кода -no-trigraphs
.
Решение
Попробуйте использовать режим gnu * - "Триграфы по умолчанию отключены в режимах gnu *; их можно включить с помощью параметра -trigraphs".(см. http://clang.llvm.org/docs/UsersManual.html#c_modes , чтобы узнать о других различиях.и переключатель командной строки)
Другие советы
Я не видел очевидного способа отключить триграфы (а не предупреждение о триграфах).Вероятно, самый простой способ исправить этот код - это изменить его на:
родовое слово