NoQ added a comment.

Yes, I think this totally works now!

Can you also add some tests?



================
Comment at: clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp:85
+// Checks if RD has name in Names and is in std namespace
+bool hasStdClassWithName(const CXXRecordDecl *RD,
+                         const SmallVectorImpl<StringRef> &Names) {
----------------
This should be `static` right?


================
Comment at: clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp:98
+
 // Define the inter-checker API.
 namespace clang {
----------------
I think the new functions that you've added aren't yet used in an inter-checker 
manner. Maybe keep them as `static` too until we have an actual use case?


================
Comment at: clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp:221-222
+    const MemRegion *StreamThisRegion = StreamVal.getAsRegion();
+    assert(StreamThisRegion &&
+           "expected to retrieve this pointer of basic_ostream");
+    State =
----------------
Might also be an `UnknownVal` which doesn't have a region. It's hard to test 
because there doesn't exist a test in which `UnknownVal` appears for a good 
reason (they only appear for bad reasons) but I'd still rather bail out.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105421

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

Reply via email to