Matthias Gehre
                                            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
fyi @Xazax-hun
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