aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Serialization/ASTWriterStmt.cpp
diff options
context:
space:
mode:
authorChuanqi Xu <yedeng.yd@linux.alibaba.com>2025-06-25 14:09:43 +0800
committerChuanqi Xu <yedeng.yd@linux.alibaba.com>2025-06-25 14:12:32 +0800
commita0ce3e691c199145b55b6a7f86468b438eb14264 (patch)
treeecd6bc0eb937c000d722f7e7205bbcdd7b561ff4 /clang/lib/Serialization/ASTWriterStmt.cpp
parent0512d119fdf019b7c56e58f89b094ee5928b0a07 (diff)
downloadllvm-a0ce3e691c199145b55b6a7f86468b438eb14264.zip
llvm-a0ce3e691c199145b55b6a7f86468b438eb14264.tar.gz
llvm-a0ce3e691c199145b55b6a7f86468b438eb14264.tar.bz2
[C++20] [Modules] Avoid crash with calls to (this auto) syntax
Due to we didn't consider (this, auto) information when setting abbrev for calls, we use incorrect format for calls, which cause crashes. From https://github.com/llvm/llvm-project/issues/118137
Diffstat (limited to 'clang/lib/Serialization/ASTWriterStmt.cpp')
-rw-r--r--clang/lib/Serialization/ASTWriterStmt.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp
index a6e320c..87536be 100644
--- a/clang/lib/Serialization/ASTWriterStmt.cpp
+++ b/clang/lib/Serialization/ASTWriterStmt.cpp
@@ -971,7 +971,7 @@ void ASTStmtWriter::VisitCallExpr(CallExpr *E) {
Record.push_back(E->getFPFeatures().getAsOpaqueInt());
if (!E->hasStoredFPFeatures() && !static_cast<bool>(E->getADLCallKind()) &&
- E->getStmtClass() == Stmt::CallExprClass)
+ !E->usesMemberSyntax() && E->getStmtClass() == Stmt::CallExprClass)
AbbrevToUse = Writer.getCallExprAbbrev();
Code = serialization::EXPR_CALL;