return table from local resource

bearophile bearophileHUGS at lycos.com
Mon Jun 25 04:11:55 PDT 2012


monarch_dodra:

> What bothers me is that it was my understanding that the D
> language standard protected me from this kind of undefined
> behavior. I did make use of anything unsafe, so what gives?
> Compiler not catch it but should have?

Currently the compiler doesn't track where is located the memory 
of dynamic array slices. In general it's hard to perform this 
analysis, so I think the D compiler isn't supposed to catch all 
such bugs.

On the other hand a certain amount of logic to statically detect 
simple cases like this one should be added. Maybe you want to add 
this as a Bugzilla enhancement request. If you have a strong C++ 
background you may even be able to write a patch in GitHub that 
implements a basic form of such static analysis.

Regarding @safe, it can't help you here. Since day 0 I've said 
@safe is a named wrongly, because it just refers to a narrow 
definition of memory safety, that doesn't include the class of 
bugs discussed here.

Bye,
bearophile


More information about the Digitalmars-d mailing list