[Issue 14126] New: GITHEAD - GC seemingly corrupting memory
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Wed Feb 4 19:11:41 PST 2015
https://issues.dlang.org/show_bug.cgi?id=14126
Issue ID: 14126
Summary: GITHEAD - GC seemingly corrupting memory
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: regression
Priority: P1
Component: DMD
Assignee: nobody at puremagic.com
Reporter: puneet at coverify.org
Here is a reduced test. I am making sure that _foo does not get any value other
than 0 or 1. But still when I run this code with the GITHEAD, I get a message:
How can _foo have any other value than 0 or 1?
16777216?? really????
core.exception.InvalidMemoryOperationError@(0)
Works fine with release 2.066.1.
import std.stdio;
import std.conv;
class FooBar {
private Foo[] _foos;
this() {
_foos.length = 512;
foreach(ref foo; _foos)
foo = Foo(1);
}
}
struct Foo {
private uint _foo = 0;
this(uint foo) {
assert(foo == 1);
_foo = foo;
}
~this() {
if (_foo != 0 && _foo != 1) {
writeln("How can _foo have any other value than 0 or 1?");
writeln(_foo, "?? really????");
assert(false, "Unexpected Value: " ~ _foo.to!string());
}
}
}
void main() {
auto bar = new FooBar();
}
--
More information about the Digitalmars-d-bugs
mailing list