  An important dimension of pointer analysis is field-Sensitive, which has been
proven to effectively enhance the accuracy of pointer analysis results. A
crucial area of research within field-Sensitive is Structure-Sensitive.
Structure-Sensitive has been shown to further enhance the precision of pointer
analysis. However, existing structure-sensitive methods cannot handle cases
where an object possesses multiple structures, even though it's common for an
object to have multiple structures throughout its lifecycle. This paper
introduces MTO-SS, a flow-sensitive pointer analysis method for objects with
multiple structures. Our observation is that it's common for an object to
possess multiple structures throughout its lifecycle. The novelty of MTO-SS
lies in: MTO-SS introduces Structure-Flow-Sensitive. An object has different
structure information at different locations in the program. To ensure the
completeness of an object's structure information, MTO-SS always performs weak
updates on the object's type. This means that once an object possesses a
structure, this structure will accompany the object throughout its lifecycle.
We evaluated our method of multi-structured object pointer analysis using the
12 largest programs in GNU Coreutils and compared the experimental results with
sparse flow-sensitive method and another method, TYPECLONE, which only allows
an object to have one structure information. Our experimental results confirm
that MTO-SS is more precise than both sparse flow-sensitive pointer analysis
and TYPECLONE, being able to answer, on average, over 22\% more alias queries
with a no-alias result compared to the former, and over 3\% more compared to
the latter. Additionally, the time overhead introduced by our method is very
low.
