aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Serialization/ASTWriterStmt.cpp
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2024-07-10 11:41:11 +0900
committerNAKAMURA Takumi <geek4civic@gmail.com>2024-07-10 13:50:34 +0900
commitd3923354a4c96f20c09b3991afb8c30804ed7a21 (patch)
tree8ea99dddea0681a61764c172384dfe70a81df507 /clang/lib/Serialization/ASTWriterStmt.cpp
parent5523a473ef3bcb611f2efc6d18f1ca7d9d023591 (diff)
downloadllvm-d3923354a4c96f20c09b3991afb8c30804ed7a21.zip
llvm-d3923354a4c96f20c09b3991afb8c30804ed7a21.tar.gz
llvm-d3923354a4c96f20c09b3991afb8c30804ed7a21.tar.bz2
Revert "[Clang] Implement resolution for CWG1835 (#92957)"
ppc64le-lld-multistage-test has been failing. This reverts commit 7bfb98c34687d9784f36937c3ff3e735698b498a.
Diffstat (limited to 'clang/lib/Serialization/ASTWriterStmt.cpp')
-rw-r--r--clang/lib/Serialization/ASTWriterStmt.cpp43
1 files changed, 18 insertions, 25 deletions
diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp
index 30c5b1b..ea49901 100644
--- a/clang/lib/Serialization/ASTWriterStmt.cpp
+++ b/clang/lib/Serialization/ASTWriterStmt.cpp
@@ -1988,41 +1988,34 @@ void ASTStmtWriter::VisitCXXDependentScopeMemberExpr(
CXXDependentScopeMemberExpr *E) {
VisitExpr(E);
- bool HasQualifier = E->hasQualifier();
- unsigned NumUnqualifiedLookups = E->getNumUnqualifiedLookups();
- bool HasTemplateInfo = E->hasTemplateKWAndArgsInfo();
- unsigned NumTemplateArgs = E->getNumTemplateArgs();
-
- // Write these first for easy access when deserializing, as they affect the
- // size of the CXXDependentScopeMemberExpr.
+ // Don't emit anything here (or if you do you will have to update
+ // the corresponding deserialization function).
+ Record.push_back(E->getNumTemplateArgs());
CurrentPackingBits.updateBits();
- CurrentPackingBits.addBit(HasQualifier);
- CurrentPackingBits.addBit(HasTemplateInfo);
- Record.push_back(NumUnqualifiedLookups);
- Record.push_back(NumTemplateArgs);
+ CurrentPackingBits.addBit(E->hasTemplateKWAndArgsInfo());
+ CurrentPackingBits.addBit(E->hasFirstQualifierFoundInScope());
+
+ if (E->hasTemplateKWAndArgsInfo()) {
+ const ASTTemplateKWAndArgsInfo &ArgInfo =
+ *E->getTrailingObjects<ASTTemplateKWAndArgsInfo>();
+ AddTemplateKWAndArgsInfo(ArgInfo,
+ E->getTrailingObjects<TemplateArgumentLoc>());
+ }
- Record.AddTypeRef(E->getBaseType());
CurrentPackingBits.addBit(E->isArrow());
+
+ Record.AddTypeRef(E->getBaseType());
+ Record.AddNestedNameSpecifierLoc(E->getQualifierLoc());
CurrentPackingBits.addBit(!E->isImplicitAccess());
if (!E->isImplicitAccess())
Record.AddStmt(E->getBase());
Record.AddSourceLocation(E->getOperatorLoc());
- Record.AddDeclarationNameInfo(E->MemberNameInfo);
-
- if (HasQualifier)
- Record.AddNestedNameSpecifierLoc(E->getQualifierLoc());
-
- for (DeclAccessPair D : E->unqualified_lookups()) {
- Record.AddDeclRef(D.getDecl());
- Record.push_back(D.getAccess());
- }
-
- if (HasTemplateInfo)
- AddTemplateKWAndArgsInfo(*E->getTrailingObjects<ASTTemplateKWAndArgsInfo>(),
- E->getTrailingObjects<TemplateArgumentLoc>());
+ if (E->hasFirstQualifierFoundInScope())
+ Record.AddDeclRef(E->getFirstQualifierFoundInScope());
+ Record.AddDeclarationNameInfo(E->MemberNameInfo);
Code = serialization::EXPR_CXX_DEPENDENT_SCOPE_MEMBER;
}