[clang] [CLANG] Full support of complex multiplication and division. (PR #81514)
Andy Kaylor via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 14 12:48:29 PDT 2024
================
@@ -986,13 +1028,17 @@ ComplexPairTy ComplexExprEmitter::EmitBinDiv(const BinOpInfo &Op) {
llvm::Value *OrigLHSi = LHSi;
if (!LHSi)
LHSi = llvm::Constant::getNullValue(RHSi->getType());
- if (Op.FPFeatures.getComplexRange() == LangOptions::CX_Fortran)
+ QualType ComplexElementTy = Op.Ty->castAs<ComplexType>()->getElementType();
+ if (Op.FPFeatures.getComplexRange() == LangOptions::CX_Improved ||
+ (Op.FPFeatures.getComplexRange() == LangOptions::CX_Promoted &&
+ FPHasBeenPromoted == LangOptions::CX_Improved))
----------------
andykaylor wrote:
It seems that this value is only ever set to CX_Improved or CX_None. Why not use a Boolean? As it is, I'm left with questions about what would happen if the value were CX_Basic or CX_None (expecting that CX_Promoted would be used if we did promote).
https://github.com/llvm/llvm-project/pull/81514
More information about the cfe-commits
mailing list