NoQ added inline comments.
================ Comment at: clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp:198 + // 'self' variable of the current class method. + if (ReceiverSVal == Message.getSelfSVal()) { + // In this case, we should return the type of the enclosing class ---------------- vsavchenko wrote: > NoQ wrote: > > I believe this is pretty much always the case. At least whenever > > `getInstanceReceiver()` is available. Another exception seem to be when > > `ReceiverSVal` is an `UnknownVal` (in this case `self` is going to be > > `SymbolRegionValue` because it's never set in the Store), but that's it. I > > inferred this by looking at > > `ObjCMethodCall::getInitialStackFrameContents()`. > > > > I think we should have used `getSelfSVal()` to begin with. > > I believe this is pretty much always the case. > > I didn't quite get what you mean by that > > What i'm trying to say is that `C.getSVal(RecE)` and `Message.getSelfSVal()` and `Message.getReceiverSVal()` are basically the same `SVal`. It shouldn't be necessary to check both or check whether they're the same; you must have meant to check for something else, probably something purely syntactic. ---- > I inferred this by looking at ObjCMethodCall::getInitialStackFrameContents(). Wait, so it's only true for inlined methods. For non-inlined methods `getSelfSVal()` will be unknown :/ Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D78286/new/ https://reviews.llvm.org/D78286 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits