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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits