================ @@ -73,21 +73,59 @@ Address CIRGenFunction::emitPointerWithAlignment(const Expr *expr, // Casts: if (auto const *ce = dyn_cast<CastExpr>(expr)) { - if (isa<ExplicitCastExpr>(ce)) { - cgm.errorNYI(expr->getSourceRange(), - "emitPointerWithAlignment: explicit cast"); - return Address::invalid(); - } + if (const auto *ece = dyn_cast<ExplicitCastExpr>(ce)) + cgm.emitExplicitCastExprType(ece); switch (ce->getCastKind()) { // Non-converting casts (but not C's implicit conversion from void*). case CK_BitCast: case CK_NoOp: case CK_AddressSpaceConversion: { - cgm.errorNYI(expr->getSourceRange(), - "emitPointerWithAlignment: noop cast"); - return Address::invalid(); - } break; + if (const auto *ptrTy = + ce->getSubExpr()->getType()->getAs<PointerType>()) { + if (ptrTy->getPointeeType()->isVoidType()) + break; + + LValueBaseInfo innerBaseInfo; ---------------- mmha wrote:
```suggestion LValueBaseInfo innerBaseInfo; assert(!cir::MissingFeatures::opTBAA()); ``` https://github.com/llvm/llvm-project/pull/154060 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits