Taken from https://github.com/dlang/druntime/pull/1750#discussion_r98181564:

```
void bar(scope char** c, scope int* n) @trusted
{
}

void foo() @safe
{
    char[100] buf;
    char* c = &buf[0];
    int n;

    bar(&c, &n);
}

void main()
{
    foo();
}
```

This doesn't compile even with dip1000, but does compile when `buf` is moved out of the scope. Can somebody explain why it fails and what needs to be done with it?

Reply via email to