https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- I think I saw this elswhere. 10088 /* Variables inherited from containing functions should have 10089 been lowered by this point. */ 10090 if (exp) 10091 context = decl_function_context (exp); 10092 gcc_assert (!exp 10093 || SCOPE_FILE_SCOPE_P (context) 10094 || context == current_function_decl 10095 || TREE_STATIC (exp) 10096 || DECL_EXTERNAL (exp) (gdb) p context $1 = <function_decl 0x7ffff6644b00 fun1> (gdb) p current_function_decl $2 = <function_decl 0x7ffff6644a00 fun2> and 'exp' is the 'this' PARM_DECL. Looks like we have the "wrong" one (or just one?). Maybe you have a single backend-decl for 'this' per structure type? You need a distinct PARM_DECL for each function.