This is the first bug from bug 3293. Test case: --- enum bug3303 = cast(void*)0xFEFEFEFE; static assert(bug3303 is bug3303); --- Crashes because e->optimize() is returning NULL. Bug has existed in at least 2.022 to 2.032.
Root cause: IndentityExp didn't consider the possibility that Equals() can return CANTINTERPRET. patch: In optimize.c, IdentityExp::optimize, line 838 (DMD2.032) if ((this->e1->isConst() && this->e2->isConst()) || (this->e1->op == TOKnull && this->e2->op == TOKnull)) { e = Identity(op, type, this->e1, this->e2); + if (e == EXP_CANT_INTERPRET) + e = this; } return e;
Fixed dmd 1.048 and 2.033
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル