Szelethus accepted this revision.
Szelethus added a comment.

Thank you, and sorry for dragging you through this! At the very least, we got 
to learn a lot from it :)



================
Comment at: clang/include/clang/StaticAnalyzer/Core/CheckerManager.h:93-96
 // This wrapper is used to ensure that only StringRefs originating from the
 // CheckerRegistry are used as check names. We want to make sure all check
 // name strings have a lifetime that keeps them alive at least until the path
 // diagnostics have been processed.
----------------
Yea, so this comment isn't incorrect, but it isn't obvious the reason behind 
this: `CheckerRegistry` gets destructed almost immediately after loading the 
checkers to `CheckerManager`, the thing we should emphasize here is that those 
checker names are actually generated as string literals with the inclusion of 
`Checkers.inc`, which is why their lifetime is long enough (practically 
infinite).


================
Comment at: clang/include/clang/StaticAnalyzer/Core/CheckerManager.h:97
 // diagnostics have been processed.
 class CheckName {
   friend class ::clang::ento::CheckerRegistry;
----------------
Grrrr, this has been bugging me for far too long. We should totally rename this 
to `CheckerName` eventually.


================
Comment at: clang/lib/StaticAnalyzer/Core/CommonBugCategories.cpp:14-20
 const char * const CoreFoundationObjectiveC = "Core Foundation/Objective-C";
 const char * const LogicError = "Logic error";
 const char * const MemoryRefCount =
   "Memory (Core Foundation/Objective-C/OSObject)";
 const char * const MemoryError = "Memory error";
 const char * const UnixAPI = "Unix API";
+const char * const CXXObjectLifecycle = "C++ object lifecycle";
----------------
`static constexpr StringLiteral`? Why is there a need to have a header and a 
cpp file for this? Not that it matters much (definitely not in the context of 
this patch), but compile-time stuff is cool.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D64274/new/

https://reviews.llvm.org/D64274



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

Reply via email to