On 8/31/22 6:08 PM, Segher Boessenkool wrote: > On Wed, Aug 31, 2022 at 05:01:04PM -0500, Peter Bergner wrote: >> The problem goes away if I use use -O1 or above, I drop -flto or I use >> the code I originally posted without the ptr_vector_*_type >> >> The assert in gimple_canonical_types_compatible_p() we're hitting is: >> 13673 default: >> 13674 /* Consider all types with language specific trees in >> them mutually >> 13675 compatible. This is executed only from verify_type >> and false >> 13676 positives can be tolerated. */ >> 13677 gcc_assert (!in_lto_p); >> 13678 return true; >> >> I have no idea why ptr_vector_*_type would behave differently here than >> build_pointer_type (vector_*_type_node). Using the build_pointer_type() >> fixed it for me, so that's why I went with it. :-) Maybe this is a bug >> in lto??? > > It looks like left-over debugging code. Or this truly should never > happen in LTO?
I have no idea. Either way, I'm going to go with the code that works, because either it's the "correct" code or it works around buggy code in lto. Either is a valid reason to me to use it. Peter