https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106736
--- Comment #11 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Peter Bergner from comment #10) > (In reply to Segher Boessenkool from comment #9) > > When MMA is not enabled, > ... > > the __vector_{quad,pair} types should not exist, > > Unfortunately, target type initialization only occurs once at the very > beginning That is what indirection is for (or copying more likely, in this case). > and if we don't initialize them because of the command line > options in affect at the time, then we get problems like PR96125, so we have > to initialize these types always, just like we do for built-in functions. I don't understand? > I also don't know of any way to attach flags to a type that says when a type > is enabled/exists and when it doesn't. You have to manually add code in strategic places. Very fiddly, and very fragile. Or, can you do stuff in rs6000_option_override_internal?