[Issue 19825] Memory corruption involving lazy variadic, stdio and json
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Sat Apr 27 15:13:04 UTC 2019
    
    
  
https://issues.dlang.org/show_bug.cgi?id=19825
ag0aep6g <ag0aep6g at gmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
                 CC|                            |ag0aep6g at gmail.com
--- Comment #2 from ag0aep6g <ag0aep6g at gmail.com> ---
Reduced test case:
----
import std.stdio;
struct JSONValue
{
    TaggedUnion payload;
}
struct TaggedUnion
{
    size_t[2] m_data;
    int m_kind;
    JSONValue opIndex(size_t i)
    {
        return JSONValue();
    }
}
void yap(lazy JSONValue arg)
{
    writeln(arg);
}
struct Foo
{
    int a;
    string name;
}
Foo makeFoo()
{
    JSONValue root;
    yap(root.payload[0].payload[0].payload[0]);
    Foo foo;
    return foo;
}
void main()
{
    auto foo = makeFoo();
    writeln(foo.name); // Garbled output, then an exception
}
----
--
    
    
More information about the Digitalmars-d-bugs
mailing list