> > Currently my type graph is very partial - I have no nodes for types without > > virtual methods at all. > > Those are not probably interesting anyways. Forgot to mention, I think in longer term we can use it to maintain more of C++ type based aliasing rules. Currently we unify canonical types only based on memory layout, since that is safe.
If we marked types that follows ODR rule by C++ FE, then we can do odr_type based matching for canonical type unless there is non-ODR type of same layout originating from other language - then we probably need to make it to alias with everything... Because canonical type construction is incremental, I am not really sure how to decide if there is ODR-non-ODR conflict. But I did not really look in detail anyway. Honza