[Issue 5902] ICE(toir.c) when there is a cross-module call to a closure

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Apr 11 05:18:35 PDT 2014


https://issues.dlang.org/show_bug.cgi?id=5902

Kenji Hara <k.hara.pg at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #3 from Kenji Hara <k.hara.pg at gmail.com> ---
(In reply to kennytm from comment #0)
> Test case:
> 
> --------------------
> // x.d:
> import y;
> struct A(alias f) {
>     void front() {
>         f();
>     }
> }
> void main() {
>     int sectid;
>     void g(){ cast(void) sectid; }  // access a local variable (make a
> closure)
>     s!(A!g);
> }
> --------------------
> // y.d:
> void s(ROR)() {
>     void r() {
>         ROR().front();
>     }
> }

By fixing issue 8704, ROR() in y.d will produce "cannot access frame pointer of
x.main" error from front-end layer. Then the glue-layer error will be fixed.

*** This issue has been marked as a duplicate of issue 8704 ***

--


More information about the Digitalmars-d-bugs mailing list