<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/81646>81646</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang] BIND(C) Passing a character type argument to C routine does not work.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang,
flang:codegen
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DanielCChen
</td>
</tr>
</table>
<pre>
```
#include <stdio.h>
#include <stdlib.h>
void cfun(char p) {
if ( p != 'A' ) exit(41);
}
```
```
use, intrinsic :: iso_c_binding
interface
subroutine cfun(i) bind(c)
import
character(C_CHAR), value :: i
end
end interface
character(C_CHAR) :: i
i = 'A'
call cfun(i)
end
```
The parameter `p` in C function `cfun` contains garbage value.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0U11v2zoM_TX0C9FApj_z4IfUvsG9LxfDsPdCtmhbmyMZktyt_35QmiZpuxmGTJE81DmiKb3Xk2FuoHiEokvkFmbrmk4azUvbzmyS3qqXBkpxeUUH4gCUaTMsm2KErPVBabubIfvnL9FF9_fh8_pstcJh3AxQPczS4Qq0R6geX8OIqEcEqnFFoBSyDoGqA1CFMY9_6QBU5ynQHrILBqruYnxge7--DyHi5hmoRW2C08brASE7QHZA7e3T8NRro7SZbqRMYDfKga-e-Pitd3YL2vCbJB1ZRnCUF0m-puvTal14h0XEqF8OgR1Q3T61_x6-RgS1-CyXja-E3sHYqOuejfpI7Br7Y-3PJTXeXfENLJflXtH9iVf785VejW8z4yqdPHFgFxNXKAVqgy2OmxmCtiZ6zyeUAgdrgtTG4yRdLyd-1b9LVJOpfbaXCTdpJaq6ECKnZG64TOuRxKj2-zobqaxVPeSVSgtZKlUUY6IbEpQLSrO0ziuiXa8KKViU-V7Iuk4ryAWfpF52y_J82lk3Jdr7jZs6LfMyWWTPiz_PBtG4SDMBEVB73WWHwSqe2ER_0SWuiXUe-m3ykItF--BvlYMOy3nQjmds0eHjf_93sS2xI1_iKJoJ5a1jGF5WRumm7cQmYLDY4ttvpix7NDbgT-t-7JLNLc0cwupjY-kIdJx0mLd-N9gT0DFyuHweVme_8xCAjmepHuh4Vvs7AAD__3xbJKU">