From 4379255e4577e4971dfb43bcaea61a7f015fb898 Mon Sep 17 00:00:00 2001 From: Walter Bright Date: Sun, 20 Apr 2025 17:32:04 -0700 Subject: [PATCH] use OPpair instead of OPadd to form complex type --- compiler/src/dmd/e2ir.d | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/compiler/src/dmd/e2ir.d b/compiler/src/dmd/e2ir.d index 0dad2e10f6..b3f13c77a5 100644 --- a/compiler/src/dmd/e2ir.d +++ b/compiler/src/dmd/e2ir.d @@ -1671,6 +1671,7 @@ elem* toElem(Expression e, ref IRState irs) elem* el = toElem(be.e1, irs); elem* er = toElem(be.e2, irs); + elem* e = el_bin(op,tym,el,er); elem_setLoc(e,be.loc); @@ -1752,7 +1753,11 @@ elem* toElem(Expression e, ref IRState irs) elem* visitAdd(AddExp e) { - return toElemBin(e, OPadd); + int op = OPadd; + if (e.type.ty == Tcomplex64 && e.e1.type.ty == Tfloat64 && e.e2.type.ty == Timaginary64) + op = OPpair; + + return toElemBin(e, op); } /***************************************