http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58978
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Here, single_imm_use can set the stmt to NULL: /* If there aren't any uses whatsoever, we're done. */ if (ptr == ptr->next) { return_false: *use_p = NULL_USE_OPERAND_P; *stmt = NULL; and then we're calling gimple_code on that NULL stmt: if (gimple_code (use_stmt) != GIMPLE_COND