llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Matheus Izvekov (mizvekov) <details> <summary>Changes</summary> The code being removed became non-functional when injected class names were removed from the redecl chain in 470c454a6176ef31474553e408c90f5ee630df89, but that commit didn't clean the code base out of all the workarounds for that state of affairs. --- Full diff: https://github.com/llvm/llvm-project/pull/155959.diff 1 Files Affected: - (modified) clang/include/clang/AST/ASTNodeTraverser.h (+2-15) ``````````diff diff --git a/clang/include/clang/AST/ASTNodeTraverser.h b/clang/include/clang/AST/ASTNodeTraverser.h index d9dc8290b0e49..fe08d637a1e1d 100644 --- a/clang/include/clang/AST/ASTNodeTraverser.h +++ b/clang/include/clang/AST/ASTNodeTraverser.h @@ -649,21 +649,8 @@ class ASTNodeTraverser template <typename SpecializationDecl> void dumpTemplateDeclSpecialization(const SpecializationDecl *D) { - for (const auto *RedeclWithBadType : D->redecls()) { - // FIXME: The redecls() range sometimes has elements of a less-specific - // type. (In particular, ClassTemplateSpecializationDecl::redecls() gives - // us TagDecls, and should give CXXRecordDecls). - auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType); - if (!Redecl) { - // Found the injected-class-name for a class template. This will be - // dumped as part of its surrounding class so we don't need to dump it - // here. - assert(isa<CXXRecordDecl>(RedeclWithBadType) && - "expected an injected-class-name"); - continue; - } - Visit(Redecl); - } + for (const auto *Redecl : D->redecls()) + Visit(cast<SpecializationDecl>(Redecl)); } template <typename TemplateDecl> `````````` </details> https://github.com/llvm/llvm-project/pull/155959 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits