www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - false positive escaping reference to local array

reply Shachar Shemesh <shachar weka.io> writes:
Hi all,

Please consider the following program:
void main() {
     int array[13];

     int[] internalFunc() {
         return array;
     }
}

This code does not compile (dmd 2.066.1), claiming:
test.d(5): Error: escaping reference to local array

The way I see it, the array in question is in scope anywhere the 
function is, and as such, this error is a false positive.

Thoughts?

Shachar
May 06 2015
next sibling parent "weaselcat" <weaselcat gmail.com> writes:
On Wednesday, 6 May 2015 at 07:28:30 UTC, Shachar Shemesh wrote:
 Hi all,

 Please consider the following program:
 void main() {
     int array[13];

     int[] internalFunc() {
         return array;
     }
 }

 This code does not compile (dmd 2.066.1), claiming:
 test.d(5): Error: escaping reference to local array

 The way I see it, the array in question is in scope anywhere 
 the function is, and as such, this error is a false positive.

 Thoughts?

 Shachar
compiles fine in 2.067.
May 06 2015
prev sibling parent Shachar Shemesh <shachar weka.io> writes:
On 06/05/15 10:28, Shachar Shemesh wrote:
 Hi all,

 Please consider the following program:
 void main() {
      int array[13];

      int[] internalFunc() {
          return array;
      }
 }

 This code does not compile (dmd 2.066.1), claiming:
 test.d(5): Error: escaping reference to local array

 The way I see it, the array in question is in scope anywhere the
 function is, and as such, this error is a false positive.

 Thoughts?

 Shachar
Interestingly, adding neither system nor trusted to the inner function solves this problem. Shachar
May 06 2015