При переходе с C++ на чистый C приходится смотреть в оба.
В частности, если ты сделал typedef enum, создал функцию с параметром такого типа, а потом при её вызове подставил переменную типа int, то отряд не заметит потери бойца gcc -Wall проглотит это молчком, потому что первое - фактически int, а второе - int явный, чего тут разбираться-то
(
Read more... )
Comments 5
gcc gcc lupus est. У нас сейчас актуальные версии gcc от 4.7.2 до 14.2.0, так там у каждой версии свои погремушки. В 14.2.0 точно что-то ужесточилось, и то что на всем остальном в худшем случае давало warning, компилироваться перестало. Может быть переход на 14.2.0 спасет смертельно раненного кота.
Не говоря уж о том, что кроме -Wall есть еще -Wextra (хотя там по-моему ничего про enum-ы дополнительного не включают)
Reply
У меня gcc 9.4.0, -Wextra не помогает. И -strict, И -std=XX тоже все перепробовал :)
Проблема некритичная, но как-то привык к строгому контролю типов.
Reply
Портабельный ассемблер он такой ассемблер.
Хотя, конечно где-то после 10-й - 11-й версий изменилось очень много и продолжнает меняться.
Reply
Вопреки названию, -Wall это точно не все предупреждения о конвертации типов, по крайней мере в последних версиях gcc.
Reply
-Wextra тоже не помогает.
Reply
Leave a comment