[Bug target/54943] ARM - EABI - varargs floating point issue

mikpe at it dot uu.se gcc-bugzilla@gcc.gnu.org
Wed Oct 17 13:30:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54943

--- Comment #4 from Mikael Pettersson <mikpe at it dot uu.se> 2012-10-17 13:30:09 UTC ---
Yes the EABI changes things, but I think the user error is that:

1. your sprintf uses homegrown varargs-parsing code, which won't work with
EABI; you should use <stdarg.h> as supplied by gcc itself, or

2. somehow you're linking together library code compiled for pre-EABI with
application code compiled for EABI, though I would have expected the linker to
detect and reject such invalid combinations.

BTW, the test case is invalid, it's missing a needed #include <stdio.h> (you
mustn't call variadic functions without proper declarations in scope), and the
call to sprintf should call snprintf (or drop the ", 32" actual parameter).

Either way the error isn't in gcc.



More information about the Gcc-bugs mailing list