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

rth at redhat dot com gcc-bugzilla@gcc.gnu.org
Sat Mar 13 19:18:00 GMT 2004


------- Additional Comments From rth at redhat dot com  2004-03-13 19:18 -------
Subject: Re:  [3.4 Regression] Passing _Complex long double does not follow the ABI

On Sat, Mar 13, 2004 at 08:26:47AM -0800, Mark Mitchell wrote:
> +  if (targetm.calls.split_complex_arg)
>      fnargs = split_complex_args (fnargs);
> 
> Shouldn't that be "targetm.calls.split_complex_arg()"?

No.  If the function pointer is null, it's defined to be false,
so we avoid calling it N times to find out that we don't need
to do anything.

> 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.

If the target does define the target hook non-null but always false,
then we'll go round the check-to-see-if-we-need-to-do-something loop
and discover the answer is no.  So while we would in fact do the right
thing under such a circumstance, we'd waste a bit of time doing so.



r~


-- 


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



More information about the Gcc-bugs mailing list