From 7448f38898a8a0796fa66f1ebcd07c475f329dc4 Mon Sep 17 00:00:00 2001 From: David Spickett Date: Wed, 5 Oct 2022 11:22:54 +0000 Subject: [PATCH] [clang] Add Create method for CXXBoolLiteralExpr Reviewed By: shafik Differential Revision: https://reviews.llvm.org/D135256 --- clang/include/clang/AST/ExprCXX.h | 5 +++++ clang/lib/AST/ASTImporter.cpp | 4 ++-- clang/lib/Sema/SemaTemplate.cpp | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/clang/include/clang/AST/ExprCXX.h b/clang/include/clang/AST/ExprCXX.h index 967a74d..104fd92 100644 --- a/clang/include/clang/AST/ExprCXX.h +++ b/clang/include/clang/AST/ExprCXX.h @@ -730,6 +730,11 @@ public: explicit CXXBoolLiteralExpr(EmptyShell Empty) : Expr(CXXBoolLiteralExprClass, Empty) {} + static CXXBoolLiteralExpr *Create(const ASTContext &C, bool Val, QualType Ty, + SourceLocation Loc) { + return new (C) CXXBoolLiteralExpr(Val, Ty, Loc); + } + bool getValue() const { return CXXBoolLiteralExprBits.Value; } void setValue(bool V) { CXXBoolLiteralExprBits.Value = V; } diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp index 5c64cf0..65aff71 100644 --- a/clang/lib/AST/ASTImporter.cpp +++ b/clang/lib/AST/ASTImporter.cpp @@ -7922,8 +7922,8 @@ ExpectedStmt ASTNodeImporter::VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *E) { if (!ToLocationOrErr) return ToLocationOrErr.takeError(); - return new (Importer.getToContext()) CXXBoolLiteralExpr( - E->getValue(), *ToTypeOrErr, *ToLocationOrErr); + return CXXBoolLiteralExpr::Create(Importer.getToContext(), E->getValue(), + *ToTypeOrErr, *ToLocationOrErr); } ExpectedStmt ASTNodeImporter::VisitMemberExpr(MemberExpr *E) { diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index e9ceec9..f9f3433 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -7829,8 +7829,8 @@ Sema::BuildExpressionFromIntegralTemplateArgument(const TemplateArgument &Arg, E = new (Context) CharacterLiteral(Arg.getAsIntegral().getZExtValue(), Kind, T, Loc); } else if (T->isBooleanType()) { - E = new (Context) CXXBoolLiteralExpr(Arg.getAsIntegral().getBoolValue(), - T, Loc); + E = CXXBoolLiteralExpr::Create(Context, Arg.getAsIntegral().getBoolValue(), + T, Loc); } else if (T->isNullPtrType()) { E = new (Context) CXXNullPtrLiteralExpr(Context.NullPtrTy, Loc); } else { -- 2.7.4