[Bug c/16446] New: Irix calling conventions for complex numbers
billingd at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Jul 9 03:12:00 GMT 2004
It is likely that the calling conventions for complex numbers are wrong for
mips-sgi-irix6.5.
Here is my test program. It is modelled on some of the test cases
in gcc.dg. The fact that the output is (1.000,0.000) makes me wonder.
Host is an Origin 300 running IRIX 6.5.22m
#include <stdio.h>
extern double creal (double _Complex);
extern double cimag (double _Complex);
extern double _Complex cpow (double _Complex, double _Complex cpow);
int main()
{
_Complex double t, t1;
t = 2 + 3.0i;
t1 = cpow (t, 2);
printf ("%f\t%f\n", creal (t), cimag (t));
printf ("%f\t%f\n", creal (t1), cimag (t1));
}
Built with 2004-07-0x HEAD
/disk4/billingd/obj/gcc-j/gcc/xgcc -B/disk4/billingd/obj/gcc-j/gcc
-I/disk4/billingd/obj/gcc-j/gcc/include -o use_cpow use_cpow.c -lm
Output is:
2.000000 3.000000
1.000000 0.000000
Comment from Richard Sandiford is that "we're mishandling the argument
passing side of things (as opposed to the return value)."
See the discussion:
http://gcc.gnu.org/ml/gcc/2004-07/msg00300.html
http://gcc.gnu.org/ml/gcc/2004-07/msg00366.html
http://gcc.gnu.org/ml/gcc/2004-07/msg00369.html
--
Summary: Irix calling conventions for complex numbers
Product: gcc
Version: 3.5.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: billingd at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: mips-sgi-irix6.5
GCC host triplet: mips-sgi-irix6.5
GCC target triplet: mips-sgi-irix6.5
OtherBugsDependingO 16322
nThis:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16446
More information about the Gcc-bugs
mailing list