[Issue 23978] [REG 2.103.0] ICE: Segmentation fault in dmd.root.aav.dmd_aaGetRvalue at src/dmd/root/aav.d:127

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Jun 8 13:35:36 UTC 2023


https://issues.dlang.org/show_bug.cgi?id=23978

--- Comment #10 from Iain Buclaw <ibuclaw at gdcproject.org> ---
What the Mem.xmalloc/xrealloc calls are telling me is that the D front-end with
`-lowmem` is reusing some memory that was previously allocated (and
subsequently freed) for some other purpose.

---

Despite non-determinism, some things are always constant:

1. The object that causes segfault is a ThisDeclaration

2. The AA struct always has 9 nodes, and a bucket size 32.

3. It's always array index 7 that has a value assigned seemingly from out of
nowhere.

---

Is it plausible that there might still be references within the AST to memory
xrealloc'd or xfree'd by the front-end?  I could at least believe that can
happen.

Why did it take the switch from function _d_newclass to template _d_newclassT
to hit this?  Still haven't a clue, but it is very clear that before
`_d_newclassT`, it is impossible to hit this segfault.

--


More information about the Digitalmars-d-bugs mailing list