[Dlang-internal] DIP1000 discussion and testing
    Walter Bright via Dlang-internal 
    dlang-internal at puremagic.com
       
    Wed Nov 23 04:18:51 PST 2016
    
    
  
On 11/23/2016 3:05 AM, Mathias Lang wrote:
> [...]
It doesn't actually escape on your version, as main() doesn't return a void*. 
Corrected example:
--------------------
void* abc () @safe
{
     int x;
     void* escape = bar(&x);
     return escape;  // <== correction
}
void* bar (scope void* x) @safe
{
     return fun(&x);  // where the problem lies
}
void* fun (scope void** ptr) @safe
{
     return *ptr;
}
---------------------
Probably the best solution is to not allow taking the address of a scope local. 
Good catch!
    
    
More information about the Dlang-internal
mailing list