https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105459
--- Comment #8 from Kewen Lin <linkw at gcc dot gnu.org> --- (In reply to Kewen Lin from comment #7) > I wonder if it's fine to move init_function_start downward after > execute_all_ipa_transforms call? the testing is ongoing. This proposed patch was bootstrapped and regress-tested. I think it's reasonable as it can avoid uninitialized target global issue (on secondary members) exposed by this bug. But this issue also exposes another problem. The main function shares the target option node as function quux, after the inlining succeeds, the flag_unsafe_math_optimizations of main function is updated by copying the flag from callee bar/foo (see function inline_call). At this time, main shouldn't share the target option with quux any more, since IIUC once one function changes the flag_unsafe_math_optimizations, it should sync with the x_ix86_unsafe_math_optimizations used for target part and should rebuild target option? It seems there are no such hooks which can be used for this kind of update. Hi Jakub, it's related to r11-5855, do you have any thoughts on this?