[PATCH] D97183: [analyzer] Add NoteTag for smart-ptr get()

Valeriy Savchenko via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 20 01:44:49 PDT 2021


vsavchenko added a comment.

In D97183#2699336 <https://reviews.llvm.org/D97183#2699336>, @steakhal wrote:

> In D97183#2699080 <https://reviews.llvm.org/D97183#2699080>, @RedDocMD wrote:
>
>> For the following function:
>>
>>   void foo(std::unique_ptr<A> P) {
>>     A* praw = P.get();
>>     A* other = praw;
>>     if (other) {}
>>     P->foo();
>>   }
>>
>> Where do we expect a note? Where `praw` is initialized, where `other` is initialized or both?
>
> I would expect no notes at all, since there is no bug.

According to the existing analyzer logic, there is a bug.  If you check `other` for null, we can conclude that there are circumstances when it is null indeed.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D97183



More information about the cfe-commits mailing list