[Bug target/14547] [3.4 Regression] Passing _Complex long double does not follow the ABI

mark at codesourcery dot com gcc-bugzilla@gcc.gnu.org
Sat Mar 13 16:27:00 GMT 2004


------- Additional Comments From mark at codesourcery dot com  2004-03-13 16:27 -------
Subject: Re:  [3.4 Regression] Passing _Complex long double
 does not follow the ABI

rth at gcc dot gnu dot org wrote:

> ------- Additional Comments From rth at gcc dot gnu dot org  2004-03-12 10:08 -------
> patch: http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01016.html
> 

The patch doesn't look quite right to me.

-  if (SPLIT_COMPLEX_ARGS)
+  /* If the target wants to split complex arguments into scalars, do 
so.  */
+  if (targetm.calls.split_complex_arg)
      fnargs = split_complex_args (fnargs);

Shouldn't that be "targetm.calls.split_complex_arg()"?

-  if (SPLIT_COMPLEX_ARGS && fnargs != orig_fnargs)
+  if (targetm.calls.split_complex_arg && fnargs != orig_fnargs)

Similarly?

Otherwise, if a backend defined this to be a function that always 
returned false, the compiler would treat that differently from the NULL 
pointer, which is (by the docs) supposed to be equivalent to the 
function that always returns false.



-- 


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



More information about the Gcc-bugs mailing list