Results 41 comments of Matthias Gehre

Merry christmas, @Xazax-hun :-)

I wonder where the cast to `const void*` comes from in ``` | | | | | | | `-ImplicitCastExpr 'const void *' | | | | | | |...

I think it's because `const void*` is the only overload that can take pointers, see https://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt

We should be careful in a template context, where an annotation on `T` make sense/no-sense depending on whether `T` is a Owner, Pointer or otherwise.

As far as I know, clang-tidy uses a single clang instance per process. Did you witness an actual problem? Which caches are you referring to specifically?

I think that cache could live in the LifetimeContext, https://github.com/mgehre/llvm-project/blob/lifetime/clang/lib/Analysis/Lifetime.cpp#L36

True, I wonder if there is a way to have a GlobalLifetimeContext per AST.

This seems to be an issue with determining the pointee type of the `Owner` VS. Adding some debugging and an extra member makes it correctly deduce the pointee type, see...

Yes, it *should*. The respective code is in https://github.com/mgehre/llvm-project/blob/lifetime/clang/lib/Analysis/LifetimeTypeCategory.cpp#L332