From d9540e437b55a056546b89a2a999bbadf332f41f Mon Sep 17 00:00:00 2001 From: "William S. Moses" Date: Tue, 8 Mar 2022 19:50:39 -0500 Subject: [PATCH] Handle noexcept --- tools/mlir-clang/Lib/clang-mlir.cc | 8 ++++++++ tools/mlir-clang/Lib/clang-mlir.h | 2 ++ 2 files changed, 10 insertions(+) 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);