LINUX.ORG.RU

История изменений

Исправление Iron_Bug, (текущая версия) :

в стандарте этого нет. это чисто косяк компилятора. он должен скопилировать код, как есть. то есть, взять и тупо зафигачить весь массив нулями, в цикле. но он, типа, делает вид «умного» и начинает подставлять уже оптимизированные (и так оно и есть) системные функции, чтобы было «более лучше». проблема в том, что такое поведение может сломать компиляцию в редких случаях, когда стандартной либы нет вообще. для этого есть флаг freestanding, но он не работает и не отключает подмену.

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

Исходная версия Iron_Bug, :

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