<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/56910>56910</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
InstructionCombine error when monolithic LTO used
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
markschimmel
</td>
</tr>
</table>
<pre>
// Monolithic LTO bug results in call to f() being erased by InstCombinerImpl::visitUnreachableInst
// File f.c
extern void __attribute__((noreturn))f();
extern volatile int b,c,d,e;
int main() {
if (b) {
c = 1;
} else {
d = 2;
}
e = 1;
e = 2;
e = 3;
f(); // CALL IS DELETED
e = 5;
return 0;
}
// file g.c
volatile int b=1,c,d,e;
void __attribute__((noreturn))f() {
while(1) {
c++;
}
}
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVU8mO2zAM_Rr5QjSw5Xg7-JBJMkCAFD10eg4kmY7VylIgyZnO31d2lskylwKUTT9SJPX0zE3zURP6Ggy-G22U9J0UsH37AXzYg0U3KO9AahBMKfAGWkJLQivgKPUe0DKHDfAP2Gjnl6bnUqPd9AdF0kWwo3TS_9IWmegYVzhmkXhF4sX5eWr9KhVCOxMnEP96tBqORjaw2zHvreSDx91ual1qY9EPVocpgp3nIenLw2bF_FhVag-c0KUIqwkLr5ljpGdSnw9EijMOIFsIIH9AAQSQdAXJtQKE8ApQObzPa6Y8ep93cfGpCD6ln5D0Bvk8Jpw5Wy62W9j8hNV6u35bP5TPbrae2IL4Cl2HubuDdmRrf7mDB_7SVfIlh_91R7ckvXeheICTZ5IJfRntC_KuToR1kmdVViRlmkVNnTZVWrHIS6-wHjVmB-Gl0WdBBplaY0NP1NDfq3wI8o0Gq-rO-4MbRTuxsQ8ZA58J04cPpY6X17eDNb9R-PApnRvQBSfLqySOuloUeZGyfE4bjmU7TsZzmjMs8jKl2ZxGivGglZpk4XxU4ztMJYJPslUkaxpTGpfxPI6TOJ3PKtFmrCnmSdUWaSNKMo8xyFXNxjlmxu4jW08jhR_VhaCSzrvPIHNO7jXi1C7UZ4PvjK17Zv840cm-RxVN_etp_n_OsiQf">