================ @@ -577,12 +577,31 @@ mlir::Attribute ConstantEmitter::tryEmitPrivate(const APValue &value, case APValue::Union: cgm.errorNYI("ConstExprEmitter::tryEmitPrivate struct or union"); return {}; - case APValue::FixedPoint: case APValue::ComplexInt: - case APValue::ComplexFloat: + case APValue::ComplexFloat: { + mlir::Type desiredType = cgm.convertType(destType); + cir::ComplexType complexType = + mlir::dyn_cast<cir::ComplexType>(desiredType); + + mlir::Type compelxElemTy = complexType.getElementType(); + if (isa<cir::IntType>(compelxElemTy)) { + llvm::APSInt real = value.getComplexIntReal(); + llvm::APSInt imag = value.getComplexIntImag(); + return builder.getAttr<cir::ConstComplexAttr>( + complexType, builder.getAttr<cir::IntAttr>(compelxElemTy, real), + builder.getAttr<cir::IntAttr>(compelxElemTy, imag)); + } + + llvm::APFloat real = value.getComplexFloatReal(); + llvm::APFloat imag = value.getComplexFloatImag(); + return builder.getAttr<cir::ConstComplexAttr>( + complexType, builder.getAttr<cir::FPAttr>(compelxElemTy, real), ---------------- xlauko wrote:
```suggestion complexType, builder.getAttr<cir::FPAttr>(complexElemTy, real), ``` https://github.com/llvm/llvm-project/pull/141369 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits