[Bug fortran/90329] Incompatibility between gfortran and C lapack calls
rguenther at suse dot de
gcc-bugzilla@gcc.gnu.org
Mon May 6 12:46:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90329
--- Comment #14 from rguenther at suse dot de <rguenther at suse dot de> ---
On Mon, 6 May 2019, tomas.kalibera at gmail dot com wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90329
>
> --- Comment #13 from Tomas Kalibera <tomas.kalibera at gmail dot com> ---
> I understand the compiler may not know and typically does not whether the
> called function accepts "character(len=1)" or "character(len=*)", so it may
> have to pass the 1. But the situation where I suggest not writing the 1 is more
> subtle (see my original post -
> https://gcc.gnu.org/ml/fortran/2019-05/msg00021.html).
>
> There DPOSV is tail-calling (jumping) into DPOTRS). DPOSV wants to pass on the
> length of UPLO (1) to DPOTRS. DPOSV knows it was called with this hidden length
> argument of 1, and indeed at the same location on the stack as it is needed for
> DPOTRS, as the length of the same variable UPLO, but it still writes a
> compile-time constant 1 to that location on the stack that already has (should
> have) 1.
I think that's called sibling-calling, not tailcalling (tail-call with
same arguments).
More information about the Gcc-bugs
mailing list