https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67002
--- Comment #18 from Kazumoto Kojima <kkojima at gcc dot gnu.org> --- (In reply to Michael Karcher from comment #15) The first different line of diff of the .pre dumps of Michael's test case with/without -g is: < Expression hash table (53 buckets, 12 entries) --- > Expression hash table (51 buckets, 12 entries) It means that gcse.c:alloc_hash_table allocates the table with different number of buckets with -g. It looks emit_rtl.c:get_max_insn_count returns different values with/without -g at rtl_pre pass. This shouldn't happen. The comment of get_max_insn_count says: /* The table size must be stable across -g, to avoid codegen differences due to debug insns, and not be affected by -fmin-insn-uid, to avoid excessive table size and to simplify debugging of -fcompare-debug failures. */