С этим компилятором надо быть готовым к сюрпризам в самых неожиданных местах. Причем никак не связанным с конкретной целевой платформой. Помню, когда в 2007 использовал его для PIC18 он не умел правильно генерить константные массивы, путался в их размерах (если обьявлен один массив через [] с инициализацией 10 элементами, то и все объявленные в этом файле через [] будут иметь 10 элементов). Баг-репорт об этом провисел почти год. Баг-репорт о второй ошибке висит до сих пор - этим летом пришло уведомление, что его переместили в категорию PIC16. Месяц назад помогал коллеге с программой для x51 (казалось бы, он для них от рождения, многие программы столько вообще не живут) - там тоже поймал чудеса буквально в первый час: передача в функцию массива как массива и через указатель на первый элемент давали колоссальную разницу в коде и использовании ОЗУ. Размер переменных, объявленных с размещением по конкретному адресу, при линковке не учитывается. То есть использовать можно, но только в крайнем случае и быть готовым обходить баги.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|