This is dstress nocompile/a/alias_30_J.d and nocompile/a/alias_30_K.d --- alias a b; alias b a; b x; --- bug.d(7): Error: alias test0.a recursive alias declaration Stack overflow --- D1 only, worked in 1.061. Doesn't happen if DMD is compiled in debug mode.
And this is nocompile/c/const_34_A.d, which is also failing. In total, 5 dstress cases are now hitting a stack overflow because of this bug. D2 is not affected. const auto a = a;
Regression was introduced in 1.061 by the fix to bug 4016, in expression.c, DsymbolExp::semantic() //printf("Identifier '%s' is a variable, type '%s'\n", toChars(), v->type->toChars()); if (!type) { + if (!v->type && v->scope) + v->semantic(v->scope); type = v->type; if (!v->type) { error("forward reference of %s %s", v->kind(), v->toChars()); The code doesn't fail on D2, because v->scope is not set on D2.
*** Issue 4794 has been marked as a duplicate of this issue. ***
*** Issue 4892 has been marked as a duplicate of this issue. ***
Created attachment 945 [details] issue5086 Patch for D1 - I'm not entirely sure on the correctness of the first hunk.
Created attachment 946 [details] issue5086 Yep, that questionable change broke tango build - should now be sorted.
https://github.com/D-Programming-Language/dmd/commit/63c06ad29f5ef81a6a53d8b6eace3660912894b4
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル