[clang] 2ce9a79 - [Serialization] Use packed bits to initialize UserDefinedLiteral
Chuanqi Xu via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 11 02:26:49 PST 2023
Author: Chuanqi Xu
Date: 2023-12-11T18:24:09+08:00
New Revision: 2ce9a799f950678cef844706ecb55a483d3c225b
URL: https://github.com/llvm/llvm-project/commit/2ce9a799f950678cef844706ecb55a483d3c225b
DIFF: https://github.com/llvm/llvm-project/commit/2ce9a799f950678cef844706ecb55a483d3c225b.diff
LOG: [Serialization] Use packed bits to initialize UserDefinedLiteral
UserDefinedLiteral is also a sub class of CallExpr but we forgot to
initialize it in the same way as other sub classes of CallExpr.
Added:
Modified:
clang/lib/Serialization/ASTReaderStmt.cpp
Removed:
################################################################################
diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp
index d9eedb2e1089fb..b3a6f619372b4a 100644
--- a/clang/lib/Serialization/ASTReaderStmt.cpp
+++ b/clang/lib/Serialization/ASTReaderStmt.cpp
@@ -3851,11 +3851,14 @@ Stmt *ASTReader::ReadStmtFromStream(ModuleFile &F) {
S = new (Context) BuiltinBitCastExpr(Empty);
break;
- case EXPR_USER_DEFINED_LITERAL:
- S = UserDefinedLiteral::CreateEmpty(
- Context, /*NumArgs=*/Record[ASTStmtReader::NumExprFields],
- /*HasFPFeatures=*/Record[ASTStmtReader::NumExprFields + 1], Empty);
+ case EXPR_USER_DEFINED_LITERAL: {
+ BitsUnpacker CallExprBits(Record[ASTStmtReader::NumExprFields]);
+ auto NumArgs = CallExprBits.getNextBits(/*Width=*/16);
+ auto HasFPFeatures = CallExprBits.getNextBit();
+ S = UserDefinedLiteral::CreateEmpty(Context, NumArgs, HasFPFeatures,
+ Empty);
break;
+ }
case EXPR_CXX_STD_INITIALIZER_LIST:
S = new (Context) CXXStdInitializerListExpr(Empty);
More information about the cfe-commits
mailing list