A test introduced in rC329780 was disabled in rC342317 for the reason explained in https://reviews.llvm.org/D41938?id=130403#inline-371070 - tests shouldn't test dump infrastructure when all they care about is how symbols relate to each other.
Add a new feature to ExprInspection: clang_analyzer_denote() and clang_analyzer_explain(). The former adds a notation to a symbol, the latter expresses another symbol in terms of previously denoted symbols.
It's currently a bit wonky - doesn't print parentheses and only supports denoting atomic symbols. But it's even more readable that way.
I also noticed that an important use case was omitted in these tests. Namely, tests for unsigned integer rearrangement are done with signed-type symbols stored in unsigned variables and we also need to test unsigned symbols stored in unsigned variables (and ideally also unsigned symbols stored in signed variables).
Why const void *?