<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/83311>83311</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang] BIND(C): Passing C_LONG_DOIUBLE does not work
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
flang:ir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DanielCChen
</td>
</tr>
</table>
<pre>
C code:
```
#include <stdio.h>
void subc(long double pi )
{
printf("in subc pi = %Lf\n", pi);
}
```
Fortran code:
```
use, intrinsic :: iso_c_binding
real(c_long_double) :: r1 = 3.1416
interface
subroutine sub(p) bind(c, name='subc')
import
real(c_long_double), intent(in), value :: p
end
end interface
call sub(r1)
end
```
Flang currently produces:
```
> a.out
in subc pi = 0.00000
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8U01vnDAQ_TXDxQqCMWThwGEXslWkKOml55WxDevWayN_pMq_rwy7qRolRUgYM-_5vccM817NRsoO6gPUQ8ZiOFvXDcwoqfv-LE02WvHW9YRbIYHuoRig2MN9cb23V6TKcB2FJEB7H4Sy-Rnow_b11SpBfBw5YKOtmYmwcdSSLIoAtleG3WFbkMUpEybABhCVWXFrJR0IYP00Qd0bQATsyaISnh5uFMOn4o7WBcfMfw1ELxOhMsEp4xUnqZDuifL2xE-jMkKZeSt1kmnAhp-SldNmBbC9IVy5SqV5WZX3G0KZIN3EuLw6TJ6cjUEZmZaAzZII0imJOAkx7CKBDoC7Lbfde1BEXRbrwo2KkC_0XO1IEwAbZa47r0xHeZO63EikEdtSGkE-qOVM66tKV76reEd8bIQtcc3MTHh0Tpqg38jirIhc-i_bhz4QltsYbnn989eLvEjXp8hMdFS0tGWZ7Mpd0ZZVVdc0O3dTw0VBm3LXyrbeTbJo2FSMXJSV5M1Uikx1WGBVIDZlg0hp3oqK8qqoJznyuhYVVIW8MKVzrV8vuXVzpryPsmsoLctMs1Fqv04N4hjnrSMBcUrege6VS1v1kLkuEdyNcfZQFVr54P9SBhX0OntrZFAP5PD4PAA2_drZe_I9DaiZSX96enn-dhpeHn8cnh6IsNITYwP5bd2vLDrdnUNY1oDxCHicVTjHMef2AnhMp10fd4uzPyUPgMfVjQc8rob-BAAA__9S3iY7">