https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101177
Bug ID: 101177 Summary: sh3: internal compiler error: Illegal instruction Product: gcc Version: 9.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: roland.illig at gmx dot de Target Milestone: --- $ cat lex.c int lex_input(void); int lex_character_constant(void); int lex_character_constant(void) { int c = lex_input(); if (c == 7) return c; c &= 255; return c == 0 ? -1 : c; } $ /home/rillig/builds/sh3-tools/bin/sh--netbsdelf-gcc --version sh--netbsdelf-gcc (NetBSD nb1 20200907) 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. $ /home/rillig/builds/sh3-tools/bin/sh--netbsdelf-gcc lex.c -O1 sh--netbsdelf-gcc: internal compiler error: Illegal instruction signal terminated program cc1 $ gdb --args /home/rillig/builds/sh3-tools/libexec/gcc/sh--netbsdelf/9.3.0/cc1 lex.c -O1 (gdb) r (gdb) bt #0 0x0000000000675ddc in df_ref_create_structure(df_ref_class, df_collection_rec*, rtx_def*, rtx_def**, basic_block_def*, df_insn_info*, df_ref_type, int) () #1 0x0000000000676b90 in df_ref_record(df_ref_class, df_collection_rec*, rtx_def*, rtx_def**, basic_block_def*, df_insn_info*, df_ref_type, int) () #2 0x0000000000676dc9 in df_uses_record(df_collection_rec*, rtx_def**, df_ref_type, basic_block_def*, df_insn_info*, int) () #3 0x0000000000676e91 in df_uses_record(df_collection_rec*, rtx_def**, df_ref_type, basic_block_def*, df_insn_info*, int) () #4 0x0000000000678274 in df_insn_refs_collect(df_collection_rec*, basic_block_def*, df_insn_info*) () #5 0x000000000067b617 in df_insn_rescan(rtx_insn*) () #6 0x00000000006dc3a1 in emit_pattern_after_noloc(rtx_def*, rtx_insn*, basic_block_def*, rtx_insn* (*)(rtx_def*)) () #7 0x00000000006dc3d3 in emit_pattern_after_setloc(rtx_def*, rtx_insn*, unsigned int, rtx_insn* (*)(rtx_def*)) () #8 0x00000000006dcc12 in emit_insn_after_setloc(rtx_def*, rtx_insn*, unsigned int) () #9 0x00000000006dce92 in try_split(rtx_def*, rtx_insn*, int) () #10 0x00000000006dd275 in try_split(rtx_def*, rtx_insn*, int) () #11 0x00000000006dd275 in try_split(rtx_def*, rtx_insn*, int) () ... #1979 0x00000000006dd275 in try_split(rtx_def*, rtx_insn*, int) () #1980 0x00000000006dd275 in try_split(rtx_def*, rtx_insn*, int) () #1981 0x0000000000905d33 in split_insn(rtx_insn*) () #1982 0x0000000000909c96 in split_all_insns() () #1983 0x0000000000909dc3 in (anonymous namespace)::pass_split_all_insns::execute(function*) () #1984 0x00000000008d2044 in execute_one_pass(opt_pass*) () #1985 0x00000000008d29a8 in execute_pass_list_1(opt_pass*) () #1986 0x00000000008d29ba in execute_pass_list_1(opt_pass*) () #1987 0x00000000008d29e0 in execute_pass_list(function*, opt_pass*) () #1988 0x000000000064fe9f in cgraph_node::expand() () #1989 0x0000000000651375 in symbol_table::compile() () #1990 0x0000000000652c7f in symbol_table::finalize_compilation_unit() () #1991 0x000000000098b57d in compile_file() () #1992 0x000000000098da13 in toplev::main(int, char**) () #1993 0x0000000000f36e1c in main () The code is extracted from: https://github.com/NetBSD/src/blob/3f158578dbda380f096b448cf750251299159488/usr.bin/xlint/lint1/lex.c