Skip to content

Possibly-related memory corruption issue #43

@Abscissa

Description

@Abscissa

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions