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?