digitalmars.D - scope pointers in safe code
- Shachar Shemesh (13/13) Jul 26 2017 void fn(scope int* var) @safe {
- John Colvin (2/17) Jul 26 2017 compile with -dip1000
void fn(scope int* var) safe {
(*var)++;
}
void fn2() safe {
int a;
fn(&a);
}
The above program does not compile:
d.d(8): Error: cannot take address of local a in safe function fn2
I propose that the scope keyword be activated to mean "I do not pass the
pointer you gave me out of the function", which would make this code
compile (as it should, as it is not doing anything unsafe).
Shachar
Jul 26 2017
On Wednesday, 26 July 2017 at 08:20:42 UTC, Shachar Shemesh wrote:
void fn(scope int* var) safe {
(*var)++;
}
void fn2() safe {
int a;
fn(&a);
}
The above program does not compile:
d.d(8): Error: cannot take address of local a in safe function
fn2
I propose that the scope keyword be activated to mean "I do not
pass the pointer you gave me out of the function", which would
make this code compile (as it should, as it is not doing
anything unsafe).
Shachar
compile with -dip1000
Jul 26 2017








John Colvin <john.loughran.colvin gmail.com>