Цитата(IgorKossak @ Jun 16 2007, 17:42)

Скомпилировал сабж и, в отличие от версии IAR 4.21, получил несколько ремарок, касающихся кастинга (Pe1375,Pa091).
Чтобы глаза не мозолили, просто запретил выдавать диагностику на эти ремарки.
Но сомнения гложат, ведь не спроста же они появились. Новая версия IAR стала строже ко всему относиться.
Каким образом можно корректно обойти эти проблемы, чтобы не напороться на неприятности с переносимостью?
Если посмотрите на код, на который выдаются эти ремарки, то увидите, что это глубоко платформенно- и компиляторо-зависимые вещи, связанные с переключением указателя стека на стек прерываний:
Код
ABS_WORD(28) = reinterpret_cast<word>(__segment_end("CSTACK"));
SP = reinterpret_cast<word>(__segment_end("RSTACK")) - 1;
Т.е. никуда этот код переноситься не будет. Да и само наличие страшных
reinterpret_cast указывает на потенциально опасное место, но в данном случае иного пути достчить цели как-то не видно.
Что касается замечания Pa091, то для меня это тоже загадка, что тут компилятору не понравилось. Тем более, что предыщущая строка по сути представляет собой точно такое же выражение, но на него ругани нет.
«Отыщи всему начало, и ты многое поймёшь» К. Прутков