CFLAnders::FunctionInfo used to record, for each value X, what other values Y may-alias it. Such an approach is inadequate if we were to move to a field-sensitive analysis. This patch changes the map type from Value->[Value] to Value->[(Value, Offset)]. In other words, instead of keeping track of "X alias Y", FunctionInfo now understands a more general alias pattern "X alias (Y + FieldOffset)". The strategy of alias query handling gets adjusted accordingly to cope with this change: now CFLAnders can potentially answer "PartialAlias" for certain queries.
Note that only the interfaces of FunctionInfo gets changed in this patch. The analysis body is still oblivious about field offset, therefore no functional change was introduced.
More patches on field-sensitivity will come in the near future.
Please rebase; it looks like my intuition on your prior patch was only half-correct. ;)
We apparently have a bot that uses clang on Windows, with earlier versions of MS's stdlib. So, LLVM_CONSTEXPR becomes constexpr, and max() still isn't constexpr on that particular bot. My bad.