================ @@ -6690,6 +6690,20 @@ When the Owner's lifetime ends, it will consider the Pointer to be dangling. P.getInt(); // P is dangling } +If a template class is annotated with [[gsl::Owner]], and the first instantiated +template argument is a [[gsl::Pointer]] type, the analysis will consider the +instantiated class as a container of the pointer. When constructing such an +object from a GSL owner object, the analysis will assume that the container +holds a pointer to the owner object. Consequently, when the owner object is +destroyed, the pointer will be considered dangling. + +.. code-block:: c++ + + int f() { + std::vector<std::string_view> v = {std::string();}; // v holds a dangling pointer. ---------------- hokein wrote:
Done. https://github.com/llvm/llvm-project/pull/107213 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits