Нет ли какой-либо опции компилятора gcc для принудительной инициализации переменной с плавающей запятой

#c

#c

Вопрос:

Я задаю этот вопрос, потому что в gfortran есть супер удобная опция компилятора, особенно при работе с устаревшим программным обеспечением:

 gfortran -finit-real=snan
 

https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html

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

Такого рода опции компилятора FORTRAN уже присутствовали в 80-х годах, если я правильно помню (по крайней мере, на рабочих станциях SUN), так что это не что-то новое.

Я не вижу эквивалента опции gfortran в gcc. Почему?
Разве это не тот же сервер генерации кода?

gcc -Wuninitialized не улавливает все и -Wmaybe-uninitialized улавливает слишком много (ложные тревоги …)… Я бы хотел, чтобы проверка во время ВЫПОЛНЕНИЯ каким-то образом дополняла, особенно когда в устаревшем коде слишком много предупреждений.

Комментарии:

1. Вы пробовали флаг -O с Wuninitialized помощью? Или -Wall (gcc 2.96 )? Кроме того, вы пытались использовать valgrid (valgrind.org )? Он может автоматически обнаруживать множество ошибок в управлении памятью и потоковой передаче, а также подробно профилировать ваши программы.

2. Разве вы не можете обновить свой код до инициализации с помощью nan? Тогда вы получаете желаемое поведение независимо от флагов компилятора.

3. C, вообще говоря, не является языком ручного управления.

4. мое предположение: проблемы с переносимостью

5. Да, я помню, что у меня была такая же мысль, когда я перешел с FORTRAN в университете. Это было бы полезно включить в отладочных сборках.