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); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits