Thread overview | |||||
---|---|---|---|---|---|
|
July 06, 2011 Postblit not called in one case | ||||
---|---|---|---|---|
| ||||
With DMD 2.053 the second assert of this program fires, is this a DMD bug or it's me that's missing something? struct Foo { int[] data; this(int n) { data.length = n; } this(this) { data = data.dup; } } void main() { Foo f1, f2; f1 = Foo(1); f2 = f1; assert(f1.data.ptr != f2.data.ptr); // OK f1 = f2 = Foo(1); assert(f1.data.ptr != f2.data.ptr); // asserts } Bye and thank you, bearophile |
July 06, 2011 Re: Postblit not called in one case | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | Looks like a bug. Please file. "bearophile" <bearophileHUGS@lycos.com> wrote in message news:iv0eki$1d8e$1@digitalmars.com... > With DMD 2.053 the second assert of this program fires, is this a DMD bug or it's me that's missing something? > > > struct Foo { > int[] data; > > this(int n) { > data.length = n; > } > > this(this) { > data = data.dup; > } > } > void main() { > Foo f1, f2; > f1 = Foo(1); > f2 = f1; > assert(f1.data.ptr != f2.data.ptr); // OK > f1 = f2 = Foo(1); > assert(f1.data.ptr != f2.data.ptr); // asserts > } > > Bye and thank you, > bearophile |
July 06, 2011 Re: Postblit not called in one case | ||||
---|---|---|---|---|
| ||||
Posted in reply to Daniel Murphy | Daniel Murphy: > Looks like a bug. Please file. http://d.puremagic.com/issues/show_bug.cgi?id=6257 Bye, bearophile |
Copyright © 1999-2021 by the D Language Foundation