ASDenysPetrov added a comment.

@steakhal

> If we get the value of `**b`, we get a //NonLoc// of type //unsigned char//.
> The dump of `**b` confirms this: `reg_$4<unsigned char 
> Element{SymRegion{reg_$0<int * a>},0 S64b,unsigned char}>`, which is a 
> `NonLoc` in deed.

Exactly. That's what I've been trying to explaine above!
This happens because of the casts, after which CSA stores operates with the 
symbol (b) as it points to `int*` (though, it really is `char**`).

> IMO we should fix the root cause of this in the Core.

I can't see a direct fix for now and feel quite unconfident in that part of 
code. That's why I suggested to accept this change as what makes CSA codebase 
resistant to current bugs in the Core, which we are not able to fix for now. We 
can change Summary and the name of this revision for acception without 
objections.

@steakhal
You told that you suppose a potential fix. It would be nice, if you share the 
patch to review.


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

https://reviews.llvm.org/D77062

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

Reply via email to