Автор Тема: _double = va_arg(arg, float);  (Прочитано 2522 раз)

Оффлайн goshka

  • Завсегдатай
  • *
  • Сообщений: 114
    • Email
_double = va_arg(arg, float);
« : 16.12.2011 09:47:33 »
Проблема:
После сборки компилятора под ARM.
неправильно получается значение встроееной функции gcc  va_arg(arg, float);
значение  встроееной функции gcc:  va_arg(arg, double); получается правильное.

При попытке компиляции:
_double = va_arg(arg, float);
Получаю замечание:
Цитировать
vfnprintf.cxx:692: warning: label 'error' defined but not used
vfnprintf.cxx:407: warning: 'float' is promoted to 'double' when passed through '...'
vfnprintf.cxx:407: note: (so you should pass 'double' not 'float' to 'va_arg')
vfnprintf.cxx:407: note: if this code is reached, the program will abort
Как я понял, при сборке gcc cross что- то собралось не так?
Не правильные ключи при ./configure?
Нельзя получить 4х байтный float аргумент?

gcc/include/stdarg.h:#define va_start(v,l)   __builtin_va_start(v,l)

sizeof() float=4 double=8 long double=12;


Спасибо.
« Последнее редактирование: 16.12.2011 09:49:19 от goshka »