Xazax-hun wrote:

> In summary, if the storage locations for two pointers are the same, we can 
> return a true literal for the comparison, but if the storage locations are 
> different, we need to return an atom.

I am wondering, if it would make sense to "fix up" the state when we discover 
aliasing? I.e., "merging" the two storage locations. Consider:

```
void f(MyBoolPair* a, MyBoolPair *b) {
  if (a == b && a->first && !b->second)
  {
    // Here, we should know: a->first == b->first == true and a->second == 
b->second == false
  } 
}
```

https://github.com/llvm/llvm-project/pull/75170
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to