This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/49606] New: mips64: Unrecognizable insn when one noreturn function calling another noreturn function
- From: "martin at decky dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 1 Jul 2011 12:05:22 +0000
- Subject: [Bug target/49606] New: mips64: Unrecognizable insn when one noreturn function calling another noreturn function
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: martin@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