-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Description
I guessing this is probably a dmd issue, and filed it as 19825. But I'm posting here too, just in case std_data_json is part of the problem, or anyone here could help find the exact compiler problem:
dub.sdl:
name "test"
dependency "std_data_json" version="==0.18.3"
main.d:
import std.stdio;
import stdx.data.json;
enum rawJson = `
{
"rootPackage": "vibe-d",
"targets": [
{
"rootConfiguration": "vibe-core"
}
]
}
`;
void yap(T...)(lazy T args)
{
writeln(args);
}
struct Foo
{
int a;
string name;
}
Foo makeFoo()
{
Foo foo;
auto root = rawJson.toJSONValue;
foo.name = root["rootPackage"].toString.idup;
writeln(foo.name);
yap(root["targets"][0]["rootConfiguration"]);
return foo;
}
void main(string[] args)
{
auto foo = makeFoo();
writeln(foo.name); // Garbled output, then an exception
}result:
$ dub -q
vibe-d
vibe-core
[...garbled data here...]uncaught exception
std.exception.ErrnoException@/home/nick/.dvm/compilers/dmd-2.085.0/linux/bin/../../src/phobos/std/stdio.d(2882): Enforcement failed (Bad address)
----------------
/home/nick/.dvm/compilers/dmd-2.085.0/linux/bin/../../src/phobos/std/exception.d:515 @safe void std.exception.bailOut!(std.exception.ErrnoException).bailOut(immutable(char)[], ulong, scope const(char)[]) [0xf11be9a1]
/home/nick/.dvm/compilers/dmd-2.085.0/linux/bin/../../src/phobos/std/exception.d:436 @safe int std.exception.enforce!(std.exception.ErrnoException).enforce!(int).enforce(int, lazy const(char)[], immutable(char)[], ulong) [0xf11be921]
/home/nick/.dvm/compilers/dmd-2.085.0/linux/bin/../../src/phobos/std/stdio.d:2882 @safe void std.stdio.File.LockingTextWriter.put!(immutable(char)[]).put(scope immutable(char)[]) [0xf11be81f]
/home/nick/.dvm/compilers/dmd-2.085.0/linux/bin/../../src/phobos/std/stdio.d:3806 @safe void std.stdio.writeln!(immutable(char)[]).writeln(immutable(char)[]) [0xf11be747]
src/main.d:41 _Dmain [0xf11a69d8]
Program exited with code -6
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels