dcoughlin added a comment.

This looks like a useful checker! Have you run this on large codebases yet? 
Does it find bugs? What kind of false positives do you see? Do you have a sense 
of what additional work would it take to bring this out of alpha and have it 
turned on by default?

Other than some super tiny comments in-line, this looks good to me.



================
Comment at: include/clang/StaticAnalyzer/Checkers/Checkers.td:296
 
+def MisusedPolymorphicObjectChecker: Checker<"MisusedPolymorphicObject">,
+     HelpText<"Reports deletions of polymorphic objects with a non-virtual "
----------------
I think users would find it helpful if this had a more specific name. There are 
a lot of ways to misuse polymorphic objects, and this checker won't check all 
of them.

What do you think about "DeleteWithNonVirtualDestructor"?


================
Comment at: lib/StaticAnalyzer/Checkers/MisusedPolymorphicObjectChecker.cpp:16
+// the last point where the derived-to-base conversion happened.
+//
+//===----------------------------------------------------------------------===//
----------------
I think it would be helpful to future maintainers to provide a high-level 
description of how this differs from `-Wnon-virtual-dtor` and 
`-Wdelete-non-virtual-dtor`.


================
Comment at: lib/StaticAnalyzer/Checkers/MisusedPolymorphicObjectChecker.cpp:137
+  llvm::raw_svector_ostream OS(Buf);
+  OS << "Derived-to-base conversion happened here";
+  PathDiagnosticLocation Pos(S, BRC.getSourceManager(),
----------------
A minor style suggestion to avoid the stacked noun phrase: "Conversion from 
derived to base happened here".


https://reviews.llvm.org/D35796



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

Reply via email to