[Issue 10324] New: Wrong type for delegate.funcptr
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Jun 10 13:30:55 PDT 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10324
Summary: Wrong type for delegate.funcptr
Product: D
Version: unspecified
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: simen.kjaras at gmail.com
--- Comment #0 from Simen Kjaeraas <simen.kjaras at gmail.com> 2013-06-10 13:30:54 PDT ---
import std.stdio;
auto foo() {
int n = 4;
return ()=>n;
}
void main( ) {
auto dg = foo();
auto fn1 = dg.funcptr;
auto fn2 = cast(int function(void*))fn1;
fn2(dg.ptr); // 1
fn1(); // 2
}
This program crashes with an access violation, because fn1 has the wrong type,
and thus gets called with the wrong number of parameters. I'm not entirely sure
what the correct type is, but I expect int function(void*), as it takes the
context pointer as an additional parameter, and that is typed void*.
--
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