diff --git a/clang/lib/CIR/CodeGen/CIRGenDecl.cpp b/clang/lib/CIR/CodeGen/CIRGenDecl.cpp index c34d42eff6966..406026b0b9f27 100644 --- a/clang/lib/CIR/CodeGen/CIRGenDecl.cpp +++ b/clang/lib/CIR/CodeGen/CIRGenDecl.cpp @@ -62,7 +62,7 @@ void CIRGenFunction::emitAutoVarInit(const clang::VarDecl &d) { void CIRGenFunction::emitAutoVarCleanups(const clang::VarDecl &d) { // Check the type for a cleanup. - if (QualType::DestructionKind dtorKind = d.needsDestruction(getContext())) + if (d.needsDestruction(getContext())) cgm.errorNYI(d.getSourceRange(), "emitAutoVarCleanups: type cleanup"); assert(!cir::MissingFeatures::opAllocaPreciseLifetime()); diff --git a/clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp b/clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp index 90a2fd2a5d806..96ac292f49ef5 100644 --- a/clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp +++ b/clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp @@ -98,6 +98,7 @@ class ScalarExprEmitter : public StmtVisitor { cgf.getCIRGenModule().errorNYI(loc, "emitScalarConversion for unequal types"); + return {}; } }; diff --git a/clang/lib/CIR/CodeGen/CIRGenFunction.cpp b/clang/lib/CIR/CodeGen/CIRGenFunction.cpp index 7861a48c93244..47d296b70d789 100644 --- a/clang/lib/CIR/CodeGen/CIRGenFunction.cpp +++ b/clang/lib/CIR/CodeGen/CIRGenFunction.cpp @@ -13,6 +13,7 @@ #include "CIRGenFunction.h" #include "CIRGenCall.h" +#include "CIRGenValue.h" #include "mlir/IR/Location.h" #include "clang/AST/GlobalDecl.h" #include "clang/CIR/MissingFeatures.h" @@ -134,10 +135,9 @@ mlir::Location CIRGenFunction::getLoc(mlir::Location lhs, mlir::Location rhs) { return mlir::FusedLoc::get(locs, metadata, &getMLIRContext()); } -mlir::LogicalResult CIRGenFunction::declare(mlir::Value addrVal, - const Decl *var, QualType ty, - mlir::Location loc, - CharUnits alignment, bool isParam) { +void CIRGenFunction::declare(mlir::Value addrVal, const Decl *var, QualType ty, + mlir::Location loc, CharUnits alignment, + bool isParam) { const auto *namedVar = dyn_cast_or_null(var); assert(namedVar && "Needs a named decl"); assert(!cir::MissingFeatures::cgfSymbolTable()); @@ -147,8 +147,6 @@ mlir::LogicalResult CIRGenFunction::declare(mlir::Value addrVal, allocaOp.setInitAttr(mlir::UnitAttr::get(&getMLIRContext())); if (ty->isReferenceType() || ty.isConstQualified()) allocaOp.setConstantAttr(mlir::UnitAttr::get(&getMLIRContext())); - - return mlir::success(); } void CIRGenFunction::startFunction(GlobalDecl gd, QualType returnType, @@ -306,7 +304,7 @@ LValue CIRGenFunction::emitLValue(const Expr *e) { getCIRGenModule().errorNYI(e->getSourceRange(), std::string("l-value not implemented for '") + e->getStmtClassName() + "'"); - break; + return LValue(); case Expr::DeclRefExprClass: return emitDeclRefLValue(cast(e)); } diff --git a/clang/lib/CIR/CodeGen/CIRGenFunction.h b/clang/lib/CIR/CodeGen/CIRGenFunction.h index 6b383378ae764..cf896d3c0a946 100644 --- a/clang/lib/CIR/CodeGen/CIRGenFunction.h +++ b/clang/lib/CIR/CodeGen/CIRGenFunction.h @@ -97,9 +97,9 @@ class CIRGenFunction : public CIRGenTypeCache { private: /// Declare a variable in the current scope, return success if the variable /// wasn't declared yet. - mlir::LogicalResult declare(mlir::Value addrVal, const clang::Decl *var, - clang::QualType ty, mlir::Location loc, - clang::CharUnits alignment, bool isParam = false); + void declare(mlir::Value addrVal, const clang::Decl *var, clang::QualType ty, + mlir::Location loc, clang::CharUnits alignment, + bool isParam = false); public: mlir::Value emitAlloca(llvm::StringRef name, mlir::Type ty,