|
|
  |
Глюк в IAR ARM 2.30А |
|
|
|
May 5 2006, 20:50
|

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

|
Цитата(DASM @ May 5 2006, 23:09)  ну так нечестно =( У Вас может регистрового контента не хватило и он уже спокойно w в стеке разместил... Так я ASM приводил..... А так (рабочий вариант) честно? Код void dummy() { unsigned long w; //-----^^^^^^^^^ w=0x55AA; bprintf( "%4X", w ); ((unsigned char*)&w)[0]=0x33; bprintf( "%4X", w ); } А вот это фокус: Код void dummy() { { unsigned short w; w=0x55AA; bprintf( "%4X", w ); ((unsigned char*)&w)[0]=(unsigned char)0x34; bprintf( "%4X", w ); } { unsigned short w; w=0x55AA; bprintf( "%4X", w ); ((unsigned char*)&w)[0]=(unsigned char)0x35; bprintf( "%4X", w ); }
{ unsigned short w; w=0x55AA; bprintf( "%4X", w ); ((unsigned char*)&w)[0]=(unsigned char)0x35; bprintf( "%4X", w ); } } В общем можно багрепорт писать.... Ну а по warning - без вариантов всегда и везде выдается.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 5 2006, 21:01
|

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

|
Цитата(DASM @ May 5 2006, 23:54)  так повторили багу ? В короткой ничего более не делающей подпрограмме да. В тоже время вышеприведен кусок работающий в любых условиях, единственное отличие - отсутствует дополнительное 'ценное указание' ввиде 'short'. Ну а поповоду 'register' - разбирайтесь сами. Это РАБОТАЕТ всегда.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 5 2006, 21:09
|

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

|
Цитата(DASM @ May 6 2006, 00:05)  да мне то чего разбираться Ага, а 'бочку катить' безосновательно это можно :-( : Цитата А если в ADS внагляк написать register short int w, то получаем недвусмысленное матюгательство ""main.cpp", line 19: Error: C3022E: 'register' attribute for 'w' ignored when address taken main.cpp: 0 warnings, 1 error, 0 serious errors
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 5 2006, 21:26
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Очень интересно .. с Вашей командой строкой в ИАРе " Errors: none Warnings: none ". М ы вторую страницу спорим, а Вы что-то утверждаете, не удосужившись скомпилировать просто main с этой лабудой/ И речь о наличии этого warning без указания register ! Для желающих повторить. Код int main() { unsigned short w; w=0x55AA; printf( "%4X", w ); ((unsigned char*)&w)[0]=0x33; printf( "%4X", w ); return 0; } Ком строка D:\EWARM4_31A\ARM\bin\iccarm.exe main.cpp -D LPC2000_IAR -lC d:\test -lA d:\test --remarks -o d:\1 -s0 --debug --cpu_mode thumb --endian little --cpu ARM7TDMI-S --stack_align 4 --interwork --warnings_affect_exit_code --no_path_in_file_macros -e --require_prototypes --fpu None --dlib_config D:\EWARM4_31A\ARM\LIB\dl4tptinl8n.h -I D:\EWARM4_31A\ARM\INC
|
|
|
|
|
May 5 2006, 21:30
|

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

|
Цитата(DASM @ May 6 2006, 00:26)  а Вы что-то утверждаете, не удосужившись скомпилировать просто main с этой лабудой Удосужился. Warning получается всегда и везде. Компилим: Код register unsigned short w; //__^^^^^ w=0x55AA; printf( "%4X", w ); ((unsigned char*)&w)[0]=0x33; printf( "%4X", w ); return 0; Это именно помянутый Вами вариант: Цитата А если в ADS внагляк написать register short int w, то получаем недвусмысленное матюгательство... Аналогичное ругательство выдаст и IAR.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 5 2006, 21:50
|

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

|
Цитата(DASM @ May 6 2006, 00:31)  Так что лажа налицо Было два обинения 1. От автора топика - подтвердилось в определенных условиях. 2. Дополнительное Ваше по отсутствию 'warning' - НЕ ПОДТВЕРДИЛОСЬ. И не надо прикрываясь '1', делать непонимающее лицо по поводу '2'.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 5 2006, 22:22
|

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

|
Цитата(DASM @ May 6 2006, 01:00)  Да, я указал что ADS трактует это как error. Если-бы в указанном контесте перечислили еще 99 особенностей поведения ADS, то они несомненно являлись-бы ЯВНЫМ противопоставлением IARу. Тем более в одном абзаце с 'жирной точкой': Цитата Мораль - пора завязывать с IAR
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|