https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95521

--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
(In reply to bouanto from comment #0)
> The reproducer is very big, so tell me if you want me to try to make it
> smaller.

Yes please!

The attachment reproduces the ICE for me, but is too big for me to work with.

By adding this:
  gcc_jit_context_dump_to_file (ctxt_0x7feee9512e00, "/tmp/something.c",
                                1 /* update_locations */);
to immediately after the create call code, it generates "source" locations in
the generated /tmp/something.c.  By poking in the debugger at the location
info:

(gdb) p loc->m_recording_loc->m_line
$10 = 6773

it shows that the issue is triggered at line 6773, which is here in the dump:

repeat_loop_body:
  *((unsigned char *)loop_var) = returnValue;
  intLocal = (unsigned long long)1;
  loop_var += *((unsigned char * *)&intLocal);  <<<<< HERE
  goto repeat_loop_header;

within extern bool
_ZN4core3fmt3num12GenericRadix7fmt_int17h0643c6b8b66acb3dE (struct
fmt::num::Binary * param, unsigned int param, struct fmt::Formatter * param)

Is it possible for you to use the above info to make a small(er) reproducer? 
Thanks.

Reply via email to