Chyba kompilátoru - gcc 13/14 na AVR arch

RDa

  • *****
  • 2 619
    • Zobrazit profil
    • E-mail
Chyba kompilátoru - gcc 13/14 na AVR arch
« kdy: 12. 06. 2023, 01:40:48 »
Po upgradu gcc z 4.x na aktuálnější verze 13 a 14 jsem narazil na těžko reprodukovatelnou chybu (achitektura avr/xmega):

Kód: [Vybrat]
during RTL pass: jump
In file included from devel.c:1624:
shell.c: In function ‘cmd_parse’:
shell.c:602:1: internal compiler error: in patch_jump_insn, at cfgrtl.cc:1295
  602 | }
      | ^
0x9529ef7 internal_error(char const*, ...)
        ???:0
0x83c6995 fancy_abort(char const*, int, char const*)
        ???:0
0x854e69e redirect_edge_and_branch(edge_def*, basic_block_def*)
        ???:0
0x91c1ccb cleanup_cfg(int)
        ???:0
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://bugs.gentoo.org/> for instructions.

Chybu způsobuje case(enum) konstrukce, a po zakomentování kterékoliv větve to je OK, tak jsem jednu ze sedmi voleb předsunul do if podmínky.

Jak ale tohle nahlásit, niž bych někam posílal svůj proprietární kód?

Když se dívám na onen assertion, tak se mi zdá že ani autoři GCC neví která bije a ty komentáře nejsou nápomocné:
https://github.com/gcc-mirror/gcc/blob/devel/omp/gcc-13/gcc/cfgrtl.cc#L1295

Volba -save-temps / s, či bez -v v případě chyby vyprodukuje nekompletní výstup kde ani není ta funkce potížistka.


Re:Chyba kompilátoru - gcc 13/14 na AVR arch
« Odpověď #1 kdy: 12. 06. 2023, 10:56:47 »
Ořezat to např. bisekcí na minimální test case se nedaří?

RDa

  • *****
  • 2 619
    • Zobrazit profil
    • E-mail
Re:Chyba kompilátoru - gcc 13/14 na AVR arch
« Odpověď #2 kdy: 12. 06. 2023, 11:35:59 »
Ořezat to např. bisekcí na minimální test case se nedaří?

Povedlo se to zredukovat z toho co vytvoril -save-temps postupnym odmazavanim a pak trocha zpetneho zkulturneni. Prikladam!

RDa

  • *****
  • 2 619
    • Zobrazit profil
    • E-mail