vsavchenko added a comment.

In D104136#2823834 <https://reviews.llvm.org/D104136#2823834>, @Szelethus wrote:

> Aha, alright! So the tracker tracked back to where the tracked expression got 
> computed in node `N`, which is the return value of some identity function. 
> Unless its explicitly told that there is a link in between the return value 
> and the parameter, the tracker can't figure this out that it could track 
> further (why would it, right?). So it asks its handlers whether they want to 
> do anything with `N`, which `IdentityHandler` does -- it digs out the node 
> where the parameter was evaluated, and tells the tracker to go on with that. 
> Awesome!

That's exactly it!

> I guess we could put `IdentityHandler` in an anonymous namespace?

Sure thing!



================
Comment at: 
clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp:945-947
+    ExprEngine &Eng = C.getStateManager().getOwningEngine();
+    // Let's mark this place with a special tag.
+    Tag = Eng.getDataTags().make<IdentityTag>(CE, BindReturnTo);
----------------
Szelethus wrote:
> I don't know ObjC at all, but is this identity obvious? Do you not need a 
> `NoteTag` to say that "Foo is an identity function, its return value equals 
> the parameter"? Or, in the possession of the actual `PathSensitiveBugReport` 
> that you can retrieve in the handler, you could drop a note there, maybe?
These are usually some type of casts.  And we already provide notes when this 
value gets into some other region (like `'newPtr' initialized to the value of 
'originalPtr'`).  I think that they are enough.  And if we want something 
better, I think we need to tweak that messaging (`StoreHandler` now allows 
that) instead of crowding user with even more notes.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D104136

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

Reply via email to