Как отключить предупреждение gcc «Плавающая константа превышает диапазон» и «Плавающая константа обрезается до нуля»? - PullRequest
3 голосов
/ 26 февраля 2011

Эти неприятные предупреждения включены по умолчанию в текущем gcc, и я не могу найти, какая опция необходима для их отключения.Они генерируют предупреждение-спам и предотвращают компиляцию с помощью -Werror в коде, где поведение, о котором предупреждает gcc, является преднамеренным (и происходит из макросов общего назначения, которые не могут легко избежать генерации таких констант).

Ответы [ 2 ]

3 голосов
/ 26 февраля 2011

После просмотра исходного кода GCC я обнаружил, что описанные вами предупреждения являются частью опции -Woverflow. Так что просто отключите это предупреждение.

Кстати, этот комментарий есть в коде предупреждения:

И C, и C ++ требуют диагностики для плавающей константы вне диапазона представимых значений своего типа ... Мы также выдаем предупреждение, если значение уменьшается.

2 голосов

В GCC 4.8 каждое предупреждение имеет четкий индикатор того, какой флаг разрешает его:

floating constant exceeds range of 'double' [-Woverflow]

Хорошая работа, разработчики GCC.

...