dup(?) 0 18 декабря, 2015 Опубликовано 18 декабря, 2015 · Жалоба При переносе проекта из IAR EWARM 5.11 в 7.40 обнаружилось, что последний на код типа int f(void){ int res; do{ if(res<1) return 0; else return 1; } while(res<1); } Выдает: Internal Error: [CoreUtil/General]: Access violation (0xc0000005) at 00E5D6E2 (reading from address 0x4) 5.11 компилирует молча. Это у всех так или у меня IAR кривой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 18 декабря, 2015 Опубликовано 18 декабря, 2015 · Жалоба Это у всех так или у меня IAR кривой? Ну да - IAR кривой, падает иногда на ровном месте. Но Ваш код ещё кривее, IAR от такого бреда вообще в осадок выпал :smile3009: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dup(?) 0 18 декабря, 2015 Опубликовано 18 декабря, 2015 · Жалоба Ежу ясно, что это всего лишь демонстрация ошибки, а не реальная функция. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
WHILE 0 18 декабря, 2015 Опубликовано 18 декабря, 2015 · Жалоба Ежу ясно, что это всего лишь демонстрация ошибки, а не реальная функция. а смысл в цикле do-while, если из него гарантированно вылетаете на первом проходе? И неициализированный res, по которому идет сравнение доставляет. Странный код... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 18 декабря, 2015 Опубликовано 18 декабря, 2015 · Жалоба Internal Error - это ошибка внутри компилятора. Пишите в техподдержку ИАРа, пусть чинят и пришлют вам исправленную версию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
den_po 0 18 декабря, 2015 Опубликовано 18 декабря, 2015 · Жалоба Если IAR - ограниченная версия, то в техподдержке вроде как пошлют. Всякоразные баги IAR (а таких действительно хватает) иногда лечатся отключением оптимизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aiwa 0 19 декабря, 2015 Опубликовано 19 декабря, 2015 (изменено) · Жалоба При переносе проекта из IAR EWARM 5.11 в 7.40 обнаружилось, что последний на код типа int f(void){ int res; do{ if(res<1) return 0; else return 1; } while(res<1); } Выдает: Internal Error: [CoreUtil/General]: Access violation (0xc0000005) at 00E5D6E2 (reading from address 0x4) 5.11 компилирует молча. Это у всех так или у меня IAR кривой? Попробуйте так: int f(void){ do { int res; do{ if(res<1) return 0; else return 1; } while(res<1); }while(0); } Результат работы тот же, но компилятор должен пропустить т.е. заключить вызывающий ошибку компилятора кусок в замыкание do{}while(0); Изменено 20 декабря, 2015 пользователем IgorKossak [codebox] для длинного кода, [code] - для короткого!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться