diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2024-07-10 11:41:11 +0900 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2024-07-10 13:50:34 +0900 |
commit | d3923354a4c96f20c09b3991afb8c30804ed7a21 (patch) | |
tree | 8ea99dddea0681a61764c172384dfe70a81df507 /clang/lib/Serialization/ASTWriterStmt.cpp | |
parent | 5523a473ef3bcb611f2efc6d18f1ca7d9d023591 (diff) | |
download | llvm-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.cpp | 43 |
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; } |