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

Reply via email to