aaron.ballman added inline comments.

================
Comment at: clang-tidy/cppcoreguidelines/OwningMemoryCheck.cpp:149
+  // Deletion of non-owners, with `delete variable;`
+  if (DeletedVariable != nullptr) {
+    assert(DeleteStmt != nullptr &&
----------------
Can `DeletedVariable` ever be null if `DeleteStmt` is non-null? I don't think 
it can, so perhaps the best approach is to gate on `DeleteStmt` and remove the 
assert.


================
Comment at: clang-tidy/cppcoreguidelines/OwningMemoryCheck.cpp:153
+    diag(DeleteStmt->getLocStart(),
+         "deleting unowned memory; use RAII or gsl::owner")
+        << SourceRange(DeletedVariable->getLocStart(),
----------------
"use RAII" is not particularly helpful. I think this means you should use a 
smart pointer, no? If so, I'd recommend: `"deleting a pointer through a type 
that is not marked 'gsl::owner'; consider using a smart pointer instead"` or 
something along those lines.


================
Comment at: clang-tidy/cppcoreguidelines/OwningMemoryCheck.cpp:154-155
+         "deleting unowned memory; use RAII or gsl::owner")
+        << SourceRange(DeletedVariable->getLocStart(),
+                       DeletedVariable->getLocEnd());
+    return true;
----------------
Can call `DeletedVariable->getSourceRange()` instead (same applies elsewhere).


================
Comment at: clang-tidy/cppcoreguidelines/OwningMemoryCheck.cpp:157
+    return true;
+  } else
+    return false;
----------------
No `else` after a return (same applies elsewhere).


================
Comment at: clang-tidy/cppcoreguidelines/OwningMemoryCheck.cpp:168
+    diag(ExpectedOwner->getLocStart(),
+         "expected this argument to be an owner or a recognized resource")
+        << SourceRange(ExpectedOwner->getLocStart(),
----------------
I'm having a bit of a hard time understanding the guidance in this warning. How 
about: `"argument is expected to be of type 'gsl::owner<>'; got %0"` and pass 
in the type of the argument?

I think something needs to be done to better-define "recognized resource" 
before it's used as a term of art in the diagnostics; this applies elsewhere as 
well.


================
Comment at: clang-tidy/cppcoreguidelines/OwningMemoryCheck.cpp:188
+    diag(OwnerAssignment->getLocStart(),
+         "assigning neither an owner nor a recognized resource")
+        << SourceRange(OwnerAssignment->getLocStart(),
----------------
Same comments here as above about "owner" and "recognized resource". I think 
you want to talk about `gsl::owner<>` where you use "owner" and drop 
"recognized resource" (because such a resource returns a `gsl::owner<>`-flagged 
type, if I understand properly).


https://reviews.llvm.org/D36354



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to