================
@@ -109,24 +109,28 @@ void extractAndAddSummaries(TUSummaryExtractor &Extractor,
       Contributors;
   findContributors(Ctx, Contributors);
   for (const auto &[Cano, Decls] : Contributors) {
+    assert(Decls.size() > 0 && !Decls[0]->isImplicit() &&
+           "guaranteed by 'findContributors'");
+    const NamedDecl *Rep = Cano->isImplicit() ? Decls[0] : Cano;
----------------
ziqingluo-90 wrote:

> Why might be the canonical decl implicit
Operator new/delete overloads have implicit canonical decls, which I assume is 
inserted by the compiler.

> what guarantees that Decls[0] is not implicit for example?
The `ContributorFinder` skips implicit code so all the `Decl`s it finds is 
non-implicit.

https://github.com/llvm/llvm-project/pull/206600
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to