On 05/19/2010 03:38 AM, Vitus Jensen wrote:
Hello!We noticed a strange problem with C++ code casting long long variables to double, as a lot of qt-embedded code is doing. ================= double convert(long long l) { return (double)l; // or double(l) } int main(int argc, char * argv[]) { long long l = 10; double f; f = convert(l); printf("convert: %lld => %f\n", l, f); return 0; } ==================== output: convert: 10 => 0.000000 C++ compiled via powerpc-angstrom-linux-g++ gives the above result. Compiling the same code as C using powerpc-angstrom-linux-gcc works fine. But when looking at the assembler code both compiler produce virtually identical output and both call __floatdidf to do the actual conversion. Very strange, has anyone ever seen similar effects?
Is this from a recent tree (i.e. post Richard Purdie's restructuring)? I've seen similar problems with C++ code on Poky which uses the same changes.
MACHINE bluepro (ppc603e, used in n1200, efika, lite5200, storcenter) DISTRO angstrom BRANCH stable Openembedded is used to build images and QT4 SDKs for this machine which work fine otherwise. The compiler version used is the default for angstrom (4.2.4), that default and the gcc recipe is identical between stable and dev branches. ppc405 uses the older 4.1.1 gcc which shows the identical behaviour when selected via ANGSTROM_GCC_VERSION. 4.3.2 and 4.3.3 failed to link but created the same assembler code otherwise. How can I analyse this situation further? I'm particular interested in how different __floatdidf versions get used dependend on frontend, the source of __floatdidf is in the gcc sourcetree and I expected it to be compiled just once. Vitus PS: fp-int-convert-long-double.c from the testsuite fails too, if compiled via powerpc-angstrom-linux-g++
-- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
