История изменений
Исправление red75prim, (текущая версия) :
Потому что Линус ориентировался только на gcc, а разработчики gcc ориентировались на ядро Линукса. В смысле, старались не сломать компиляцию ядра.
По стандарту оно UB, но разработчики gcc решили доопределить эти UB так, чтобы ядро компилировалось нормально. И они имеют на это полное право. Но это означает, что с другими компиляторами работа ядра не гарантирована.
Исходная версия red75prim, :
Потому что Линус ориентировался только на gcc, а разработчики gcc ориентировались на ядро Линукса. В смысле, старались не сломать компиляцию ядра.