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

ag0ae...@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ag0ae...@gmail.com

--- Comment #1 from ag0ae...@gmail.com ---
Slightly more reduced, and including a variant that throws an AssertError
instead of segfaulting:

----
struct S { T* t; }
struct T { string name; }

S foo(string name)
{
    return S(new T(name[0 .. $]));
}

int bar(string name)
{
    version (segfault)
        size_t len = name.length; // segfault
    else version (asserterror)
        string n = name; // AssertError@ddmd/ctfeexpr.d(1854)
    return 0;
}

const S s = foo("");
enum b = bar(s.t.name);
----

--

Reply via email to