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