[Bug 71] ICE with std.algorith.uniq

gdc-bugzilla at gdcproject.org gdc-bugzilla at gdcproject.org
Tue Jul 9 15:41:27 PDT 2013


http://bugzilla.gdcproject.org/show_bug.cgi?id=71

Iain Buclaw <ibuclaw at gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED

--- Comment #5 from Iain Buclaw <ibuclaw at gdcproject.org> 2013-07-09 22:41:27 UTC ---
@@ -3594,8 +3594,6 @@ IRState::getVThis (Dsymbol *decl, Expression *e)
          if (ffo->creates_frame || ffo->static_chain
              || fdo->hasNestedFrameRefs())
            vthis_value = get_frame_for_symbol (this->func, sd);
-         else if (fdo->vthis && fdo->vthis->type != Type::tvoidptr)
-           vthis_value = get_decl_tree (fdo->vthis, this->func);
          else
            vthis_value = d_null_pointer;
        }


This was copied from class decls above, and applies to code such as:

class C16
{
    int w = 3;

    void iterator()
    {
        class Foo
        {
            void current()
            {
                assert(w == 3);   // Access parent from here.
            }
        }

        Foo f = new Foo();
        f.current();
    }
}


However, this is not valid for structs (struct Foo cannot access struct C16).

Running through testsuite atm.

-- 
Configure bugmail: http://bugzilla.gdcproject.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the D.gnu mailing list