<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/122913>122913</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[SCEV] Another SEGV/stack overflow in LoopGuards
</td>
</tr>
<tr>
<th>Labels</th>
<td>
llvm:SCEV,
crash-on-valid
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
juliannagele
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
danilaml
</td>
</tr>
</table>
<pre>
Similar to https://github.com/llvm/llvm-project/issues/120615. Looks like the fix wasn't a complete one. Here is an example:
```llvm
target triple = "x86_64-unknown-linux-gnu"
define ptr @f(i32 %0) {
switch i32 0, label %bb4 [
i32 1, label %bb4
i32 2, label %bb4
i32 3, label %bb4
i32 4, label %bb1
i32 5, label %bb4
i32 6, label %bb4
]
bb: ; No predecessors!
switch i32 0, label %bb4 [
i32 0, label %bb4
i32 1, label %bb1
]
bb1: ; preds = %bb2, %bb, %1
%2 = phi i32 [ %3, %bb2 ], [ 0, %bb ], [ 0, %1 ]
switch i32 %0, label %bb3 [
i32 0, label %bb2
i32 1, label %bb2
i32 2, label %bb2
]
bb2: ; preds = %bb1, %bb1, %bb1
%3 = add i32 %2, 1
%4 = icmp ult i32 %0, 0
br i1 %4, label %bb1, label %bb4
bb3: ; preds = %bb1
unreachable
bb4: ; preds = %bb2, %bb, %bb, %1, %1, %1, %1, %1, %1
ret ptr null
}
```
Crashes with the same command line `opt -passes=nary-reassociate --scalar-evolution-use-expensive-range-sharpening`
godbolt: https://godbolt.org/z/4d3jo8jTz
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVV2P6jYQ_TXmZRQUj5MAD3mA5XL7UPXlVve1cpIh8a6xI9sB7v31lQ27ZT9Ku2pRpBifsefMyeiM9F71hqhm5YYhPk5aSWNkT5oYIiu3MzmFwbq6k0ZpedCzxnY_6m_qoLR0ECwMIYyeiTXDHcNdr8IwNfPWHhjutD4-v7LR2UdqA8Od8n4iz3DHMa94OYdfrX3yoNUTQRgI9uoMJ-kNw0UACa09jJoCgTU0h1_IESgP0gCdZURi6jw9VX55Utp8HaTrKUBwatQETGyBIZ6X1R9VkU3mydiTybQy0znrzRSLTbd0tFeGYAwOWJHvGS6VQGBY5gxXwBYblq8B_EmFdoAI5QwfQMuGdIxqmgKilDEIEs7f4jcY3sHEHax4g_EbrLxzrvoIY-X2UnrTMJFCP_FjYgO_WRgdddSS99Z5honOJyR6h9-Rj7-hzD_NOVKOfP21J8qmSd8hra6Li6AMS0xB46ASGVZu4qZ4CcdEJf4rN5cy0vZHu_zK-lXzXPrqVYHiH8TBO-Lgnd66YDfK4f-hHH-p-XZ1FU-kONl1z7UmTi9wkWDVHkaYdHilR55iGgeKp8h3TfC-YVJNItb0Ic1432QcyXaQjabnA8XfHHjXETet8W_fMaWjkLzETFrHnIvtrVOxfP3gpB_Iw0mFIdmflweKpneQpgMdvYhVuR0DZKP0njwTWyPdj8yR9N62SgaCLPOt1NJldLR6CsqabPKU0Xkk49WRMidNT5kfpBvJKNNfcve2a6wOUYI3Ln4B5tb1DHc_Ge6KTjza5ePvP2ddLbqVWMkZ1XwhqmW1KFZ8NtTYrppyj223Khu-bHPRdVRwKZq8XVSC40zVmGOZc17wknPB53yx2BeFKNuScElty4qcDlLpeTTwmHuWRkXNEVdczNL39tdBlTxerL89fPkerRsfGGIbpcysyY5Sq-46vlydxk8z9Z4VuVY--L_uDyroNPrSPeUW1saGgRx8-_L1O8OdD7J9Anskt9f2BMrEWTV-naTr_Gxyuv4vwy8VdazxzwAAAP__-AMJjg">