There are cases when two tags with different base types denote accesses to the same direct or indirect member of a structure type. Currently, merging of such tags results in a tag that represents an access to an object that has the type of that member. This patch changes this so that if one of the accesses encloses the other, then the generic tag is the one of the enclosed access.
When we move to the new format, we'll need to update this to something conservatively correct with the size field of the access (I assume take the max size and return a new node with that size as necessary). You might also add a TODO note in here so we're more likely to remember.