----- reduced test case ----- void main() { mixin("if (0) % ;"); } ----------------------------- IfStatement::semantic is called with (ifbody == null) Seems like something that should be detected during parsing of the mixin.
Additional test case: void main() { mixin("if (a b) ;"); } Another case of a broken if statement. The crash goes away if a body is added to the if statement.
PATCH: statement.c 337. CompileStatement::flatten() Statements *a = new Statements(); while (p.token.value != TOKeof) { + int olderrs = global.errors; Statement *s = p.parseStatement(PSsemi | PScurlyscope); + if (olderrs == global.errors) // discard it if parsing failed a->push(s); }
http://www.dsource.org/projects/dmd/changeset/778
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル