================ @@ -0,0 +1,73 @@ +//===- unittests/AST/ProfilingTest.cpp --- Tests for Profiling ------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "clang/AST/ASTContext.h" +#include "clang/ASTMatchers/ASTMatchFinder.h" +#include "clang/ASTMatchers/ASTMatchers.h" +#include "clang/Tooling/Tooling.h" +#include "gtest/gtest.h" +#include <utility> + +namespace clang { +namespace { +using namespace ast_matchers; + +static auto getClassTemplateRedecls() { + std::string Code = R"cpp( + template <class> struct A; + template <class> struct A; + template <class> struct A; + )cpp"; + auto AST = tooling::buildASTFromCode(Code); + ASTContext &Ctx = AST->getASTContext(); + + auto MatchResults = match(classTemplateDecl().bind("id"), Ctx); + SmallVector<ClassTemplateDecl *, 3> Res; + for (BoundNodes &N : MatchResults) { + if (auto *CTD = const_cast<ClassTemplateDecl *>( + N.getNodeAs<ClassTemplateDecl>("id"))) + Res.push_back(CTD); + } + assert(Res.size() == 3); + for (auto &&I : Res) ---------------- chapuni wrote:
`I` is used only for +Asserts. https://github.com/llvm/llvm-project/pull/95202 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits