http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49606
Summary: mips64: Unrecognizable insn when one noreturn function calling another noreturn function Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: major Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: mar...@decky.cz Target: mips64 Created attachment 24654 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24654 Preprocessed file Simple test case: extern void first(void) __attribute__((noreturn)); extern void second(void) __attribute__((noreturn)); void first(void) { second(); } Output of /usr/local/cross/mips64/bin/mips64el-linux-gnu-gcc -v: Using built-in specs. COLLECT_GCC=/usr/local/cross/mips64/bin/mips64el-linux-gnu-gcc COLLECT_LTO_WRAPPER=/usr/local/cross/mips64/libexec/gcc/mips64el-linux-gnu/4.6.1/lto-wrapper Target: mips64el-linux-gnu Configured with: /root/install/cross/mips64/gcc-4.6.1/configure --target=mips64el-linux-gnu --prefix=/usr/local/cross/mips64 --program-prefix=mips64el-linux-gnu- --with-gnu-as --with-gnu-ld --disable-nls --disable-threads --enable-languages=c,objc,c++,obj-c++ --disable-multilib --disable-libgcj --without-headers --disable-shared --enable-lto Thread model: single gcc version 4.6.1 (GCC) Command line that triggered the bug: /usr/local/cross/mips64/bin/mips64el-linux-gnu-gcc -I../../lib/c/include -O3 -imacros ../../../config.h -fexec-charset=UTF-8 -fwide-exec-charset=UTF-32LE -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc -Wall -Wextra -Wno-clobbered -Wno-unused-parameter -Wmissing-prototypes -std=gnu99 -Werror-implicit-function-declaration -Wwrite-strings -pipe -g -D__LE__ -Werror -mips3 -mabi=o64 -mlong64 -Xassembler -64 -I../../srv/loader/include -c generic/libc.c -o generic/libc.o Compiler output: generic/libc.c: In function 'first': generic/libc.c:7:1: error: unrecognizable insn: (insn 16 15 18 2 (parallel [ (set (mem/c:DI (plus:DI (reg/f:DI 29 $sp) (const_int 32 [0x20])) [2 S8 A64]) (unspec:SI [ (const_int 32 [0x20]) (reg:DI 28 $28) ] UNSPEC_POTENTIAL_CPRESTORE)) (clobber (scratch:DI)) ]) generic/libc.c:5 -1 (nil)) generic/libc.c:7:1: internal compiler error: in extract_insn, at recog.c:2109