https://issues.dlang.org/show_bug.cgi?id=15079
Kenji Hara <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid Hardware|x86_64 |All Summary|Assertion `fd->semanticRun |[REG2.068.1] Assertion |== PASSsemantic3done' |`fd->semanticRun == |failed. |PASSsemantic3done' failed. OS|Linux |All --- Comment #5 from Kenji Hara <[email protected]> --- (In reply to Marc Schütz from comment #4) > Created attachment 1552 [details] > reduced testcase Thank you very much, Marc! I've slightly tweaked the case and get the minimum code to reproduce the error. scan_code.d: --- import parsing; parsing.d: --- Vector!string parseAlgorithmName() { assert(0); } struct Vector(ALLOC) { @disable this(this); RefCounted!(Vector, ALLOC) dupr() { assert(0); } } struct RefCounted(T, ALLOC) { ~this() { T* objc; .destroy(*objc); } } // ---- void _destructRecurse(S)(ref S s) if (is(S == struct)) { static if (__traits(hasMember, S, "__xdtor") && __traits(isSame, S, __traits(parent, s.__xdtor))) { s.__xdtor(); } } void destroy(T)(ref T obj) if (is(T == struct)) { _destructRecurse(obj); () @trusted { auto buf = (cast(ubyte*) &obj)[0 .. T.sizeof]; auto init = cast(ubyte[])typeid(T).init(); if (init.ptr is null) // null ptr means initialize to 0s buf[] = 0; else buf[] = init[]; } (); } command line: --- dmd -c scan_token.d parsing.d(8): Error: function parsing.Vector!string.Vector.__aggrPostblit errors compiling the function Fortunately, the error is now disappeared with git-head. After the bisecting git history, I've reached to the commit which the issue has fixed. SHA-1: af4d3a4158f95d1720b42e8027ae2aead90c7a4f Merge pull request #5075 from 9rnsr/fix15044 [REG2.068.0] Issue 15044 - destroy might leak memory As a conclusion, it was another surface of issue 15044, and fixed from 2.068.2 - the attribute inference problem had sent a function which is not yet completed semantic analysis to glue layer, and the breaking of internal invariance has been detected. --
