LinuxForum.Fans
Тема

_double = va_arg(arg, float);

Автор: goshka 1 сообщений 1737 просмотров
#214527

Проблема:
После сборки компилятора под ARM.
неправильно получается значение встроееной функции gcc va_arg(arg, float);
значение встроееной функции gcc: va_arg(arg, double); получается правильное.

При попытке компиляции:

text
_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 аргумент?

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

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

Спасибо.

Войдите или зарегистрируйтесь, чтобы ответить.