alias sets and the vptr

Richard Henderson rth@cygnus.com
Mon Oct 5 23:11:00 GMT 1998


Alpha is currently a good fraction of the C++ tests because __rtti_user
was miscompiled:

        lda $2,__vt_9type_info
        lda $1,__vt_16__user_type_info
        stq $17,0($16)
        stq $1,8($16)
        stq $2,8($16)

Note that the vtable stores are reversed.  The problem is the 
alias sets for the two mems:

(mem/s:DI (plus:DI (reg/v:DI 69)
        (const_int 8)) 9)

(mem/s:DI (plus:DI (reg/v:DI 69)
        (const_int 8)) 24)

I suppose what will have to happen is that all vptrs for the
classes in a given tree will have to share an alias set, or
at minimum have all vptrs everywhere share an alias set. 

I'll leave such a change in the hands of someone significantly
more familiar with the C++ front end.


r~



More information about the Gcc-bugs mailing list