[Issue 20308] frame access regression
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Dec 13 01:45:19 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=20308
timon.gehr at gmx.ch changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |timon.gehr at gmx.ch
--- Comment #1 from timon.gehr at gmx.ch ---
Unfortunately the reason for this regression is that the bug I fixed was
masking another unrelated bug. I.e., this is not my fault and I cannot fix it
very easily. DMD doesn't know that your handler lambdas do not need a frame
pointer at the time it checks for frame pointer accessibility. Due to the bug
fixed in https://github.com/dlang/dmd/pull/10214, DMD used to think that the
lambdas are not nested in a function.
The following workaround makes the code compile:
void main(){
static handler0(double z){ return z; }
static handler1(T)(T y){ return y; }
assert(
S!(handler0, handler1)
.call!(r => r(1))()
== 1);
}
This allows DMD to see that the handlers are static functions without analyzing
their bodies.
--
More information about the Digitalmars-d-bugs
mailing list