реклама на сайте
подробности

 
 
> IARCompiler V4.30A-P050906/W32, Не работает #pragma diag_suppress=Pa046
zltigo
сообщение Dec 5 2005, 21:22
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Многкратно мною ранее портированный на разные платформы и компилированный пятью
компиляторами текст вызова по адресу, типа:

( (void(*)())arg )( (char *)pvalue );


Естественно у любого компилятора вызвывает вопль об отсутствии прототипа.
Естественно у любого вопль давится соответствующей прагмой или на худой конец ключем
компилятора.

Только не у IAR ARM ANSI C/C++ Compiler V4.30A-P050906/W32 (другие не пробовал в ввиду отсутствия истории работ с IAR). У IAR вопль НЕ ОТКЛЮЧАЕТСЯ!
Ни "#pragma diag_suppress=Pa046", ни ключем в командной строке. Не удается и перевести
в разряд "remarks" или "warnings". Только фатальная ошибка. Дурдом какой-то.

Кто-то знает, как заставить IAR работать?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_artem_
сообщение Dec 6 2005, 01:53
Сообщение #2


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



Ya s samogo nachala ponyal chto vy xotite otkljuchit detektirovanie etoj osibki, prosto podumal chto mozno problemu oboyti .))
Mdaaaaa, mne samomu interesno stalo vzjal nemnogo po standartu proselsja. Dumayu chto vy eto znaete uze davno , podpravte menja esli ja neverno govoryu .

Standard govorit chto (6.9.1 Syntax rule 8) :
"If a function that accepts a variable number of arguments is defined without a parameter type list that ends with the ellipsis notation, the BEHAVIOR IS UNDEFINED."

V svoyu ochered syntax pishet dla argumentov:

parameter-type-list:
parameter-list
parameter-list , ...

Vrode by poluchaetsja chto kak minimum odin identifier dolzen byt pered ellipsisom chtoby compiler ego prinjal. Esli u vas vse pervye argumenty- pointery , to mozno funkciyu perepisat kak :

typedef void(*fptr)(void*,...);

((fptr)(arg))(pvalue);

Proveril na Borlande - tak i est. Mozet byt eto vyxod?
Est li tam ptichka s podderzkoj K&R standarta Cv settingax?
Mozet otmetit ee?


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 15:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016