https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88134
--- Comment #13 from Arseny Solokha <asolokha at gmx dot com> --- In decl_address_invariant_p() we hit this break: 3423 case VAR_DECL: 3424 if ((TREE_STATIC (op) || DECL_EXTERNAL (op)) 3425 || DECL_THREAD_LOCAL_P (op) 3426 || DECL_CONTEXT (op) == current_function_decl 3427 || decl_function_context (op) == current_function_decl) 3428 return true; 3429 break; and return false, which in the end becomes what is_gimple_min_invariant() returns. I can provide relevant dumps or gdb session printouts if so desired. At first glance I didn't notice anything glaringly wrong there, but admittedly I have no idea what to look at.