On Saturday, 21 August 2021 at 07:16:46 UTC, Heikuw wrote:
What causes this example of safeD code to be compiled in dmd
and ldc but not compiled in gcc?
The default behavior varies, but the dip1000 behavior is the same:
```
$ gdc -ftransition=dip1000 bug.d
bug.d:26:28: error: scope variable mp assigned to non-scope
parameter p calling bug.f
26 | immutable(int)* ip = f(mp);
| ^
$ dmd -preview=dip1000 bug.d
bug.d(26): Error: scope variable `mp` assigned to non-scope
parameter `p` calling bug.f
$ ldc2 -preview=dip1000 bug.d
bug.d(26): Error: scope variable `mp` assigned to non-scope
parameter `p` calling bug.f
```