[Issue 3024] Array slicing allows returning an escaping reference to a local stack variable

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Jul 12 08:53:15 PDT 2009


http://d.puremagic.com/issues/show_bug.cgi?id=3024


Matti Niemenmaa <matti.niemenmaa+dbugzilla at iki.fi> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Platform|x86                         |All
            Version|2.028                       |1.045
            Summary|array slicing bypass the    |Array slicing allows
                   |stack var escape check      |returning an escaping
                   |                            |reference to a local stack
                   |                            |variable
         OS/Version|Windows                     |All




--- Comment #2 from Matti Niemenmaa <matti.niemenmaa+dbugzilla at iki.fi>  2009-07-12 08:53:14 PDT ---
Also affects 1.0.

It's true that the specs don't mention it but it's a bit inconsistent that both
the pointer and scope object cases are detected while the case of array slicing
isn't. Of the following, currently only the first three result in a compile
error:

int*   pointer() { int x;          return &x;   }
Object object()  { scope Object x; return  x;   }
int[]  array()   { int[1] x;       return  x;   }
int[]  slice()   { int[1] x;       return  x[]; }

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list