https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105012
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- 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)));