ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Среда
27 января
/1068683
Топик полностью
IBAH (12.01.2021 15:08 - 21:33, просмотров: 70) в ответ на Не видал. В больших проектах исправление варнингов -- проблема. И даже профи говнокодят очень даже запросто. И лучше разобраться с предупреждениями от анализатора (час на одно), чем разгребать трудноуловимые баги (по неделе на один). В данном же случае то ли с integral promotion в компиляторе проблемы (или специально отключено), или анализатор действительно глючный. Я всегда был о IAR невысокого мнения... Из бесплатных можно пользоваться clang-tidy или clang-analizer - автор: fk0
А причина возникновения варнинга следующая... Анализатор не плодит дополнительных сущностей. Из строки "if(Kolvo>MaxRegTX || Kolvo==0) return;" он выясняет Kolvo[1,32], а из строки "if((Adres+Kolvo)>MaxReg) return;" он выясняет Adres[0,15], принимая Kolvo наихудшим случаем. Потом когда доходит до цикла, он считает индекс массива 32+15-1=46. И выкидывает варнинг. Поправьте если не прав. 
Ответить
Ответы