https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113156
--- Comment #8 from Georg-Johann Lay <gjl at gcc dot gnu.org> --- Is there as comprehensible explanation when option property "Save" is needed? The internals just state > Build the cl_target_option structure to hold a copy of the option, > add the functions cl_target_option_save and cl_target_option_restore > to save and restore the options. Which explains what is does, but not when and why it is needed. For example, -mdouble= and -mlong-double= are multilib options, and not optimizatoin options, and they whould never change during a program. Why is "Save" needed for some multilib options and not for others? Isn't it even a bug to allow multilib options to be changed due to optimization flags? A code that uses -mdouble=32 in some places and -mdouble=64 is others is bogus.