Может ли сообщение valgrind "Conditional jump or move depends on uninitialized value" быть так называемым "ложным срабатыванием"

Большинство вопросов, которые я нахожу здесь, предоставляют кусок кода и получают ответы, указывающие на фактическую ошибку. Мой вопрос касается условных переходов на неинициализированные значения в целом. Я могу понять, что кусок памяти не обязательно очищать в конце программы, если есть уверенность, что это выделение делается только один раз и, возможно, понадобится в течение жизни программы. Насколько я помню, система GType при завершении программы оставляет много несвободной памяти. Эти несвободные блоки можно рассматривать как "ложные срабатывания". Но может ли "условный переход или перемещение по неинициализированному значению" быть ложным срабатыванием? Единственное, что я могу придумать, это кто-то реализует (плохую) функцию рандомизации, просто считывая случайный адрес (где сам случайный адрес является хитрой частью ;)). Другим примером может быть аппаратное отображение на часть памяти, которая затем считывается, но это в основном делается драйверами, а не обычными пользовательскими приложениями. Есть ли другой пример (желательно на C), который может вызвать такое ложное срабатывание?

9
задан Josh Kelley 8 December 2011 в 14:12
поделиться