https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115129
Bug ID: 115129
Summary: [12/13/14/15 regression] ICE on recursive realloc call
with LTO
Product: gcc
Version: unknown
Status: UNCONFIRMED
Keywords: ice-on-invalid-code
Severity: normal
Priority: P3
Component: lto
Assignee: unassigned at gcc dot gnu.org
Reporter: sjames at gcc dot gnu.org
Target Milestone: ---
Working on reducing something else but noticed this in the process.
url.i:
```
struct growable main_dest;
void* realloc();
struct growable {
char base;
} append_string(struct growable *dest) {
struct growable G_ = *dest;
long DR_needed_size;
while (DR_needed_size)
realloc(G_);
}
int main() { append_string(&main_dest); }
```
xmalloc.i:
```
void *realloc(void *p, unsigned long s) { realloc(p, s); }
```
```
$ gcc url.i xmalloc.i -flto -O2
[...]
during GIMPLE pass: fre
url.i: In function ‘main’:
url.i:12:5: internal compiler error: in execute_todo, at passes.cc:2138
12 | int main() { append_string(&main_dest); }
| ^
0x55b08ec670be execute_todo
/usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/passes.cc:2138
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://bugs.gentoo.org/> for instructions.
lto-wrapper: fatal error: gcc returned 1 exit status
compilation terminated.
/usr/lib/gcc/x86_64-pc-linux-gnu/15/../../../../x86_64-pc-linux-gnu/bin/ld:
error: lto-wrapper failed
collect2: error: ld returned 1 exit status
```