https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79985
--- Comment #7 from Alexander Monakov <amonakov at gcc dot gnu.org> --- Or rather like this: diff --git a/gcc/df-scan.c b/gcc/df-scan.c index 95e1e0df2d5..732705c0385 100644 --- a/gcc/df-scan.c +++ b/gcc/df-scan.c @@ -3207,11 +3207,11 @@ df_insn_refs_collect (struct df_collection_rec *collection_rec, if (CALL_P (insn_info->insn)) df_get_call_refs (collection_rec, bb, insn_info, flags); - if (asm_noperands (PATTERN (insn_info->insn)) >= 0) + if (GET_CODE (PATTERN (insn_info->insn)) == ASM_INPUT) for (unsigned i = 0; i < FIRST_PSEUDO_REGISTER; i++) if (global_regs[i]) { - /* As with calls, asm statements reference all global regs. */ + /* As with calls, basic asms reference all global regs. */ df_ref_record (DF_REF_BASE, collection_rec, regno_reg_rtx[i], NULL, bb, insn_info, DF_REF_REG_USE, flags); df_ref_record (DF_REF_BASE, collection_rec, regno_reg_rtx[i],