https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105012
--- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> --- (In reply to Richard Biener from comment #4) > OK, so we have > > (gdb) p debug_gimple_stmt (stmt) > derf(address-taken) ={v} {CLOBBER}; > > lacking virtual operands and the LHS is > > <function_decl 0x7ffff6346700 derf > type <function_type 0x7ffff634a348 > type <real_type 0x7ffff6537348 double DF > ... > > that stmt is input this way from LTO bytecode. The following should catch > who's building this. > > diff --git a/gcc/tree-cfg.cc b/gcc/tree-cfg.cc > index e321d929fd0..fa92a505771 100644 > --- a/gcc/tree-cfg.cc > +++ b/gcc/tree-cfg.cc > @@ -4512,7 +4512,8 @@ verify_gimple_assign_single (gassign *stmt) > } > > if (gimple_clobber_p (stmt) > - && !(DECL_P (lhs) || TREE_CODE (lhs) == MEM_REF)) > + && !((DECL_P (lhs) && TREE_CODE (lhs) != FUNCTION_DECL) > + || TREE_CODE (lhs) == MEM_REF)) > { > error ("%qs LHS in clobber statement", > get_tree_code_name (TREE_CODE (lhs))); Let me find the builder of this.