https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686
--- Comment #4 from ktkachov at gcc dot gnu.org --- The differences between r234749 and the one before it start in 032t.esra: --- good/wrong.cpp.032t.esra 2016-09-22 17:41:24.914598329 +0100 +++ bad/wrong.cpp.032t.esra 2016-09-22 17:40:33.134513348 +0100 @@ -1357,8 +1357,8 @@ Updating SSA information for statement MEM[(struct &)&D.43856] ={v} {CLOBBER}; Updating SSA information for statement MEM[(struct &)&D.43856] ={v} {CLOBBER}; Updating SSA information for statement MEM[(struct _Function_base *)&D.43856]._M_manager = 0B; -Updating SSA information for statement MEM[(struct function *)&D.43856] = __f$__this; -Updating SSA information for statement MEM[(struct function *)&D.43856 + 4B] = __f$__dummy_a; +Updating SSA information for statement MEM[(struct __lambda0 *)&D.43856] = __f$__this; +Updating SSA information for statement MEM[(struct __lambda0 *)&D.43856 + 4B] = __f$__dummy_a; Updating SSA information for statement D.43856._M_invoker = _M_invoke; Updating SSA information for statement D.43856.D.42018._M_manager = _M_manager; Updating SSA information for statement __tmp = MEM[(union _Any_data &)&D.43856]; @@ -1449,9 +1449,9 @@ # .MEM_23 = VDEF <.MEM_22> MEM[(struct _Function_baseD.30840 *)&D.43856]._M_managerD.30941 = 0B; # .MEM_4 = VDEF <.MEM_23> - MEM[(struct functionD.41835 *)&D.43856] = __f$__this_17; + MEM[(struct __lambda0D.42048 *)&D.43856] = __f$__this_17; # .MEM_16 = VDEF <.MEM_4> - MEM[(struct functionD.41835 *)&D.43856 + 4B] = __f$__dummy_a_19; + MEM[(struct __lambda0D.42048 *)&D.43856 + 4B] = __f$__dummy_a_19; # .MEM_25 = VDEF <.MEM_16> D.43856._M_invokerD.41987 = _ZNSt17_Function_handlerIFvvEZN1C4doCbEvEUlvE_E9_M_invokeERKSt9_Any_dataD.44149; # .MEM_26 = VDEF <.MEM_25> @@ -1791,8 +1791,8 @@ Updating SSA information for statement MEM[(struct &)&D.43888] ={v} {CLOBBER}; Updating SSA information for statement MEM[(struct &)&D.43888] ={v} {CLOBBER}; Updating SSA information for statement MEM[(struct _Function_base *)&D.43888]._M_manager = 0B; -Updating SSA information for statement MEM[(struct function *)&D.43888] = __f$__this; -Updating SSA information for statement MEM[(struct function *)&D.43888 + 4B] = __f$__tmp; +Updating SSA information for statement MEM[(struct __lambda1 *)&D.43888] = __f$__this; +Updating SSA information for statement MEM[(struct __lambda1 *)&D.43888 + 4B] = __f$__tmp; Updating SSA information for statement D.43888._M_invoker = _M_invoke; Updating SSA information for statement D.43888.D.42018._M_manager = _M_manager; Updating SSA information for statement __tmp = MEM[(union _Any_data &)&D.43888]; @@ -1883,9 +1883,9 @@ # .MEM_23 = VDEF <.MEM_22> MEM[(struct _Function_baseD.30840 *)&D.43888]._M_managerD.30941 = 0B; # .MEM_4 = VDEF <.MEM_23> - MEM[(struct functionD.41835 *)&D.43888] = __f$__this_17; + MEM[(struct __lambda1D.42234 *)&D.43888] = __f$__this_17; # .MEM_16 = VDEF <.MEM_4> - MEM[(struct functionD.41835 *)&D.43888 + 4B] = __f$__tmp_19; + MEM[(struct __lambda1D.42234 *)&D.43888 + 4B] = __f$__tmp_19; # .MEM_25 = VDEF <.MEM_16> D.43888._M_invokerD.41987 = _ZNSt17_Function_handlerIFvvEZN1C4doCbEvEUlvE0_E9_M_invokeERKSt9_Any_dataD.45281; # .MEM_26 = VDEF <.MEM_25>