<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/124357>124357</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Assertion with overflowing pointer with -fsanitize=pointer-overflow
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
efriedma-quic
</td>
</tr>
</table>
<pre>
Testcase:
```
void f(void g(void*, void*)) {
int a[2][2];
g(&a[0x8000000000000000], a+0x8000000000000000);
}
```
```
<stdin>:1:59: warning: array index -9223372036854775808 is past the end of the array (that has type 'int[2][2]') [-Warray-bounds]
1 | void f(void g(void*, void*)) { int x = 2; int a[2][2]; g(&a[0x8000000000000000], a+0x8000000000000000); }
| ^ ~~~~~~~~~~~~~~~~~~
<stdin>:1:43: note: array 'a' declared here
1 | void f(void g(void*, void*)) { int x = 2; int a[2][2]; g(&a[0x8000000000000000], a+0x8000000000000000); }
| ^
clang: /usr2/efriedma/local/upstream/llvm-top/clang/lib/CodeGen/CGExprScalar.cpp:5837: llvm::Value *clang::CodeGen::CodeGenFunction::EmitCheckedInBoundsGEP(llvm::Type *, llvm::Value *, ArrayRef<llvm::Value *>, bool, bool, clang::SourceLocation, const llvm::Twine &): Assertion `(!isa<llvm::Constant>(EvaluatedGEP.TotalOffset) || EvaluatedGEP.OffsetOverflows == Builder.getFalse()) && "If the offset got constant-folded, we don't expect that there was an " "overflow."' failed.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUVU1v4zYT_jXjC2GDHlqmdNBB_lCwwAvs4t2gPdPiyGbLkCpJxdke-tsLSvYmm6ZAgZ5KyNCIM5yPZ56hVYzm7IhqKHZQHBZqTBcfauqDIf2klr-NplucvP5WP1JMnYoEogE-PVt-e3jz7I1mPWA5CeebANgA7tl3sQKsGMgd8IYx4xJTUOwQisP9JWZVPg-4zVr-UvIfV7bDPVOAHymxmp2APLxL8f2n2MekjQNxBNGsQTRFBaJhVxWccecsqhDUN2acphe2rBCFkMjFtiw2UhYlL5mJbFAxsXQhRk4z30_ifA6wTBeV2EVFlr4NxAClceldxSgnTIrd8ufp2PLkR6djVmUkGFszkDOE_xzfCdsXBuLAEMTub6D-1zCzGWQ2rZwlFEf2x1_Wh2BvREbY-USvSANKBSiZps6qQJpdKNB_EwbgTWfVTCPAdowBAdv7VAG21nfKZs0QUyD1lLfs89My-QGwnc9ia80JsN17TQ_ksvRwfBnC105ZFVbdMGTWlkLmKPl0Hk3R_KTsmNn2PQMQzd3F2492dF0y_rZ5fDJpf6HuV9Kf3G4i4cPxC2D56vhxZvEE9gfh8naTG_l_6kHsP7IQx2x08t6-fb_J86sfQ0f_852aMstK72J6E-7xalx2tp3Ab1gTI4VszPJc506uTVQ_xN9nF8qlKXx5fFZ2VIn0w_HL6tEnZT_3faQ0k2afG_iDyaz9_Eyht_4aM50yo3ajsZrC6kypVTbSFHpmXs5tywDx03wf-MkDO_s0V6NcWvbeatK5wCsxnUuVidHLQF2-TtR0pwRiVxWZctlX_vlbEitAzIPSK2NJr97ebAtdC12JSi2oXkshZbGVJV9cao1is93wol8rVXK-1kp2VVGVp05X60puFqZGjgVf4wZxLThfnSTJctNXVErOFWnYcHpSxq4ysisfzgsT40j1GjeikAurTmTj9D-C6OjKJm3OtDgsQj2x-zSeI2y4NTHFVzfJJEv1ayOvJl3YvVbjzmzwxiUKs2LZR-VMMr8TiMNNs7xbL8Zg60tKQ8ytxxawPZt0GU-rzt9n7D5qQ_C_UJcA2ynTCNjeSnmu8c8AAAD__0KGCkw">