bolshakov-a added inline comments.
================ Comment at: clang/include/clang/AST/ASTContext.h:3036 if (!std::is_trivially_destructible<T>::value) { - auto DestroyPtr = [](void *V) { static_cast<T *>(V)->~T(); }; - AddDeallocation(DestroyPtr, Ptr); + auto DestroyPtr = [](void *V) { ((T *)V)->~T(); }; + AddDeallocation(DestroyPtr, (void *)Ptr); ---------------- erichkeane wrote: > This change is weird... what is going on here? Here is not very beautiful attempt to workaround const-ness of `TemplateArgument::V::Value` pointer passed here from the added `TemplateArgument` constructor. The change in this line isn't acually needed and made only for consistence with the next line, I think. Alternatively, I can 1) refactor `addDestruction` and `AddDeallocation` to work with pointers to constants, or 2) add `const_cast` to `AddDeallocation` call in the next line, or 3) make `TemplateArgument::V::Value` pointer non-const. I'm biased to the first variant. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140996/new/ https://reviews.llvm.org/D140996 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits