------- Comment #14 from ghazi at gcc dot gnu dot org 2009-12-09 00:06 ------- (In reply to comment #11) > I think I understand why apple gcc42 does not show the problem: it does not > call ___divdc3:
It is possible that some versions of GCC (Apple's and/or FSF's) inline the assembly code to do the divide. That would explain why they don't call ___divdc3. Then what happens only depends on what version of the algorithm they inline, not what they link against. > ... > This also explain why the test compiled with -c and 4.5, but linked with 4.2 > fails. So my guess about the lazy complex division seems right in libm. Could > someone write a C code forcing the use of ___divdc3? I don't think it makes sense to consider user code calling ___divdc3 directly. According to the C standard, functions that begin with double underscore are reserved for the compiler and/or system libraries. That is exactly how they are being used here. The call should only be generated by the compiler itself as a service function to perform something like a complex divide. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42333