Нет, ты меня зацепил. Сказал А, говри Б. Где конкретно там про проблеммы именно Microsoft компилятора. Цитату в студию.
No problem
2. Использование функций с переменным количеством аргументов
GCC и clang полностью проверяют соответствие строки формата типам и количеству аргументов, а также позволяют добавить проверку к пользовательской функции. Так что проблема исключительно для компилятора Microsoft.
Остальные проблемы проявляются исключительно из-за манипуляции типами, которые в онтопике не представляют реальной опасности по множеству причин. Например, разработка системного софта находится под контролем проекта GNU, Red Hat и Linux Foundation с бородатых 90-х годов, и они просто не пропустят туда бессмыссленные или незащищённые проверками размера типов манипуляции с битами. Кроме того, благодаря вирусам и хакам для игр на стеке Windows/Visual Studio/C++ выросло целое поколение программистов, считающих своим долгом сэкономить 2 такта на коде, который выполняется раз в год, или 2 байта на структуре данных, потребляющей меньше 1% общей памяти. В Linux такие люди отыгрались на Embedded и прикладное программирование не задели.
Отдельно отмечу только
6. Упаковка указателей
Тип long в GCC/clang по размеру совпадает с типом указателя, так что кастовать его к long или unsigned long можно без проблем.