<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/85516>85516</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang] Assertion `charBox && "host value must be a fir::CharBoxValue"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
k-arrows
</td>
</tr>
</table>
<pre>
Crash itself is reproducible on Godbolt.
https://godbolt.org/z/9qraxbG56
Reproducer:
```console
$ cat test.f90
subroutine sub1
implicit none
pointer(p,c)
character c
contains
subroutine sub2
print *, c
end
end
program p
implicit none
call sub1
end
```
When I use flang-new with assertion enabled, I got the following assertion failure.
```
flang-new: /path_to_llvm_project/llvm-project/flang/lib/Lower/HostAssociations.cpp:230: static void (anonymous namespace)::CapturedCharacterScalars::instantiateHostTuple(const (anonymous namespace)::InstantiateHostTuple &, Fortran::lower::AbstractConverter &, const Fortran::semantics::Symbol &): Assertion `charBox && "host value must be a fir::CharBoxValue"' failed.
```
Stack dump:
```console
#0 0x0000562a0927d965 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
#1 0x0000562a0927df99 SignalHandler(int) Signals.cpp:0:0
#2 0x00007f47fab32520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x00007f47fab86a7c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#4 0x00007f47fab86a7c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#5 0x00007f47fab86a7c pthread_kill ./nptl/pthread_kill.c:89:10
#6 0x00007f47fab32476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#7 0x00007f47fab187f3 abort ./stdlib/abort.c:81:7
#8 0x00007f47fab1871b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#9 0x00007f47fab29e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x0000562a09959cde Fortran::lower::HostAssociations::hostProcedureBindings(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&) #11 0x0000562a0979cef8 (anonymous namespace)::FirConverter::startNewFunction(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0
#12 0x0000562a0979bb47 (anonymous namespace)::FirConverter::lowerFunc(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0
#13 0x0000562a0974969f Fortran::lower::LoweringBridge::lower(Fortran::parser::Program const&, Fortran::semantics::SemanticsContext const&)
#14 0x0000562a096ae444 Fortran::frontend::CodeGenAction::beginSourceFileAction()
#15 0x0000562a092a1e6c Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&)
#16 0x0000562a09296c07 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&)
#17 0x0000562a092a50bc Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*)
#18 0x0000562a08f43b5d fc1_main(llvm::ArrayRef<char const*>, char const*)
#19 0x0000562a08f42b46 main
#20 0x00007f47fab19d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#21 0x00007f47fab19e40 call_init ./csu/../csu/libc-start.c:128:20
#22 0x00007f47fab19e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#23 0x0000562a08f420a5 _start
flang-new: error: unable to execute command: Aborted
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 19.0.0git (https://github.com/llvm/llvm-project.git dbbdee2ea2156170062813fb3d7f2c023d65e02d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
```
I can use the `-flang-deprecated-no-hlfir` option to avoid the crash.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0WN1y4yoSfhp8Q9klof8LX2gy63NSdXZr6mR291KFoCWzQaAFlJ99-i2QHNuKJ5m5OFWJSmrorz-apuk2tVb0CmCPsi8o-7qhkztqs3_cUmP0s920mr_u7wy1RyycBdlhYbGB0Wg-MdFKwFrh3zRvtXQ7FH1FUX10brQoqRE5IHLolzFtekQO_0PkUP3X0Jf2tyyfp8_PPxdIMF5zHsij-Y9pZbWERUpSzKjDDqzbdVU0S-3UGj05oQDbqY1nIcZiGKVgwmGlFZyEoxbKgUGkHBG5Y4hUywg7UkOZA4PZLGFaOSqUPWleWyEnMcajEcphRGpE7k7KGBSf395e5udodG_ogMcPWTIq5cVazhgnr1xC_vsICt_jyQLuJFX9VsEzfhbuiKm1YJzQCoOirQTuGd7jXjvsjoA7LaV-Fqq_mNhRIScDu5v23uBRUmNEDiN1x8bpRsqnoRmN_g8wh8jBf27Pn0HLi0WLyOEP_ezdf_hdW1dbq5mg3rDdsXFESU2SyINbR51g-EkLjhEpqdLqddCTxYoOYEfKwO9cUqOkvqOjmwzwu9MGPjAqqbHzqFDWUeUEdeAtfp9GCYiUPqrcZ8j3N3QxIrn34kEbZ6iaJ8qwpvBat9Z5GndaPYHx4bQozBav1CwMHp4tVB9eh1bLeb5ngOu3XfHn4EjNF_0yD-cYEXLU1uEnKifAw2QdbgFT3ImFyN08_19-HBGCSBH2FvjtrZ2fD46yR8ynYfzkIGJEkghHL1EURVlOaFSRgld5hv3eL6t7Xdb1zZ-PgPzdBPeW50mGPjfaOgN0WPwklEOkwmcz8dpMV1X4QfSKyt-p4jIc5kVrFp9iKQr_b0BkASq6tOhom5CMRD4E3kLzpcybPN1KoaaXba-meYDtrN7liHyJXlKvck4ZiCTJNWaZ04Lhphnd0QDlzaOQsvEnHAZQLgQ63iFyUKOT_vxcTNsxlNRpipK6yM_46c_g-4SmqPwQuShRUscX3shuIV-qfQhXViu4fO3ctMhxb8N-BKT5FZHDLny9Wg6j9dDaihdEDoYKCwGbFCipL3xQXEPHZdElmLbauBnY8Xn7gmhmF_sVnxHKdwhxixslG6kpb7geqJj3RaiwXC8ebM_oDBfHhad0se3VNSCpoMp_LZQSr_IWSj7Mr49TlVWMww_TzDp7zlKfEb4ZzYBPBr4IxYXqLSLlTyerT5Lbw-vwdzrOCSoczeuzWVQMuvKzrHoQ5mxvzhSOGvcPeD5MivnVfMB47NyCssz9QzzCP5VwC6kvRvAe3p9_T5asyLZtWvw62UDGW_-LWCbXLNMqr7ofbki4TIXqZ8DL4RW5kRp7Uvq2lCDhRrq14-t76fR5p5WDF3eheMrTnnh6RTynkKbpNW5nPIDiywWlOfwGqp63PIha6IV60JNhcBAS6lM0XBvKri8EGkPOPjJ0WL4-sLR215rpMAoJZq4HfHS899ltk_dqnJw38AOf5ddLqXIWFR_7bMUkSOEF2OTO7vp5X6z5FCvXZlH7oWsXy2daT5rRz1m8d2h9zaO85FF2adJmHHcsbnymviogamPo65_QoeTOV0gnP9co-Vuouq5kVzaqlQ3SpjkON8HbHBKtLo6KVxFuGp_Km5C1Gl-pN2_3B7PT-xtuuUNvKe2OKKmzcDXnZ6vx2iqkUWgJGqGEWxuaXz36NqDPVxbxoOScVwi5BXq1lFuruAmeFD47ZmfsZO3KiGZ4RsU3OgcwRvtchKfQlWCn8RJImOlhoCFMcO2vc-Af6QcpPsXWSXmpczGfAvRSgyBS-g5p-xRkAFhcBGu1soKfwFhfrMXVLtpFvQi9wqq3Fe44tTumh6XlWXU-O6_F25YDEKAkzvK4iKKclHHStQkvOsIikvA8g4jwNwrfqenB3x54KSEm9aj0s7ooJeZ5oSDDg-Yg_ey5jPpxZX-PGVWhR_SdH8qj7bxYDqMBRh3wrdLbo_T9Qx5hPYZa1WlMQw_mlZih9rjb8H3Cq6SiG9jHRRxlZZFH1ea4r3hBGe1YRIqM0ByqtCgoQMkSHpcQ5RuxJxFJoyTO4zhOSLVLWEpZkSZAE0pS1qE0goEKufNu3GnTb4S1E-zLLIvzjaQtSBt-qiBk6SkJyr5uzD64vZ16i9JICuvsGcEJJ8PvG4egkX39q7qqzWTk_tcixBecfoE-SYQ1_j8AAP__4zdbGw">