Есть ли переключатель для отключения триграфов с лязгом?

StackOverflow https://stackoverflow.com/questions/9387166

  •  28-10-2019
  •  | 
  •  

Вопрос

У меня есть (устаревший) код, который я создаю с помощью clang впервые.Код выглядит примерно так:

родовое слово

Clang выдает следующее предупреждение (ошибка с кодом -Werror):

родовое слово

Очевидно, что код генерирующего кода не предназначен для использования в качестве триграфа, поэтому я хочу полностью отключить триграфы (источник не использует их намеренно нигде).

Я пробовал генерировать код кода, но это не вариант:

родовое слово

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

ПРИМЕЧАНИЕ. Триграфы были включены как непреднамеренный побочный эффект использования кода -no-trigraphs.

Это было полезно?

Решение

Попробуйте использовать режим gnu * - "Триграфы по умолчанию отключены в режимах gnu *; их можно включить с помощью параметра -trigraphs".(см. http://clang.llvm.org/docs/UsersManual.html#c_modes , чтобы узнать о других различиях.и переключатель командной строки)

Другие советы

Я не видел очевидного способа отключить триграфы (а не предупреждение о триграфах).Вероятно, самый простой способ исправить этот код - это изменить его на:

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top