https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120178
Bug ID: 120178
Summary: ICE in fold_build2_loc during profile_estimate when
casting free to volatile size_t and adding to malloc
pointer in version 13.3
Product: gcc
Version: 13.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: mario.rodriguezb1 at um dot es
Target Milestone: ---
The following minimal C code causes an internal compiler error (ICE) during the
profile_estimate GIMPLE pass in GCC 13.3.0:
```
#include <stdlib.h>
int main(void) {
return!!(malloc(2) + (volatile size_t)free) - 1; }
```
```
during GIMPLE pass: profile_estimate
<source>:3:52: internal compiler error: in build2, at tree.cc:5068
3 | return!!(malloc(2) + (volatile size_t)free) - 1; }
| ^
0x1cfb19c internal_error(char const*, ...)
???:0
0x720063 fancy_abort(char const*, int, char const*)
???:0
0xb3ea6f fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
???:0
0xdb8e69 tree_estimate_probability(bool)
???:0
```
To reproduce
https://gcc.godbolt.org/z/b3nWvdMxv