diff --git a/tools/mlir-clang/Lib/clang-mlir.cc b/tools/mlir-clang/Lib/clang-mlir.cc index 11ada90ad98a..11e34fa5ed75 100644 --- a/tools/mlir-clang/Lib/clang-mlir.cc +++ b/tools/mlir-clang/Lib/clang-mlir.cc @@ -2995,6 +2995,14 @@ MLIRScanner::VisitCXXDefaultInitExpr(clang::CXXDefaultInitExpr *expr) { return cfl; } +ValueCategory MLIRScanner::VisitCXXNoexceptExpr(CXXNoexceptExpr *expr) { + auto ty = getMLIRType(expr->getType()).cast(); + return ValueCategory( + builder.create(getMLIRLocation(expr->getExprLoc()), + expr->getValue(), ty), + /*isReference*/ false); +} + ValueCategory MLIRScanner::VisitMemberExpr(MemberExpr *ME) { auto memberName = ME->getMemberDecl()->getName(); if (auto sr2 = dyn_cast(ME->getBase())) { diff --git a/tools/mlir-clang/Lib/clang-mlir.h b/tools/mlir-clang/Lib/clang-mlir.h index d512eeff7aed..cbf25dbbe9ae 100644 --- a/tools/mlir-clang/Lib/clang-mlir.h +++ b/tools/mlir-clang/Lib/clang-mlir.h @@ -310,6 +310,8 @@ class MLIRScanner : public StmtVisitor { ValueCategory VisitBinaryOperator(clang::BinaryOperator *BO); + ValueCategory VisitCXXNoexceptExpr(clang::CXXNoexceptExpr *AS); + ValueCategory VisitAttributedStmt(clang::AttributedStmt *AS); ValueCategory VisitExprWithCleanups(clang::ExprWithCleanups *E);