<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/116924>116924</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
return out of __finally crashes compiler (Instruction referencing instruction not embedded in a basic block)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jaykrell
</td>
</tr>
</table>
<pre>
Works fine with Visual C++.
```
int main()
{
int a = 10;
__try {
a = 20;
*(volatile char*)0;
a = 30;
}
__finally
{
// Next line is not needed.
//a = _abnormal_termination() ? 40 : 50;
//goto A;
return a;
}
A:
return a;
}
/*
1.c(16,9): warning: jump out of __finally block has undefined behavior [-Wjump-seh-finally]
return a;
^
Instruction referencing instruction not embedded in a basic block!
%a = call ptr @llvm.localrecover(ptr @main, ptr %frame_pointer, i32 0)
<badref> = load i32, ptr %a, align 4
in function ?fin$0@0@main@@
fatal error: error in backend: Broken function found, compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: ...
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module '1.c'.
4. Running pass 'Module Verifier' on function '@"?fin$0@0@main@@"'
clang-cl: error: clang frontend command failed with exit code 70 (use -v to see invocation)
*/
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVd-PozYQ_mucl9EiMLAkDzwk2Y1UqVedetLd42qwB-KLsZFtcrf_fWUgv7qnVqoaRWBmPs_Y33xjo_eqM0Q1K3esfFnhGI7W1d_x_eRI61Vj5Xv9zbqTh1YZgh8qHOGr8iNq2DO-Y3yXsPSFpdvl-Zwu_-lTmQA9KsP4mvHNAql28wAAIAIQWP4CWcryO8fbW3Dv8ICNvxnL77CMbxlfn63GoDSBOKKbTJvHeLfJ-aODVS_3WVtlUOv3e_8t04HxA_xBPwPoSIbyYGwAQyRJJo-5ZvCc8Q0bY12P-i2Q65XBoOxCCbD8AEUKLN9C-XHFv4rZ2WBh-y9QR2F0BvDXW52fW5Zvb84PM_6GnpIv4ywRjK-zZ8b3m1jXfAs_0Bllujj8PvYD2DGAbW-EQqOtOMERPYxGUhSThIaOeFbWASt3T9_ivCdPx6dLDcpLZX65m2lH5ets-M344EYRiQVHLTkyQpkO1J091or6hqQkCcoAQoNeiXlljGeX0IyXc90Eag1DcMCKVOtzn2grUDsS9kyO8fXimgW-n5G8bB329DZYZUJE7UHlHNKr_AFYvm9QOmpZ_jrl0RZlRN0FwThGrToDxaWVoB3NvBOWH9qYs0hZkaaXJUxfM7jFgBrIOetiRaZB3HKD4kRGRtvO2RPdxWztaGTMKmw_KD1pFLCxLpC8kvP599ftl1fwY9Or2LjN2IGjwboAwcIxhMFHUc06VeE4NomwPeOHSN_yehqc_U4iMH5Q3o_kY1OhiSURepQE4UggHPrjtNzgUNDEjKPBWUHekwRvRzeb40z03gqFgSS40YAXTg1hacgvAcUJ5NgPD3JPE_jsbOewB3Td2JMJcemQJHeNnCWxWGSnSg3oPDnAAGRk1HarNN2wPIG9lQQdGXJzh199eQJ_jib2BwzoPTBeHS68f46GT2iwi2qpwBrorRw1RdTUaNXdioqPkT7N6K_kVKuuMW5a4VWUBef_JBrOI-yaRWg03ZPQV-3EwWSE1lkTIgHC9n3kvkWlSc4XA_1UAURkoUqB8fXoCZ7OURqeCJQ5W7GcfZe7gE9iebw6VrLO5Sbf4IrqrMp5uuZFWa2Oddu22G5yapuiKotNIdKGsNmI50K2tBZ8pWqe8iLLeJo-p2lZJVUm2nZTYZ5lUuZNZIJ6VDqZ2tm6bjVJsM6y5w0vVhob0n66Czk39AMmb2SnfFm5elJvM3Y-ngfKB38LE1TQVC_n1Iezb1Iz-aW1KHb4-n84sTar0en6v3fdsutzzf8KAAD__ykBYX4">