http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56524
Bug #: 56524 Summary: Compiler ICE when compiling with -mips16 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: s...@gcc.gnu.org CC: al...@redhat.com Target: mips*-*-* This test program (from glibc) generates an ICE when compiled with -mips16. The internal error we are hitting was part of the fix for pr52555. The test program is a bit finicky, I think it is dependent on the order that GCC processes the functions. I don't know if this is a bug in the generic code or in mips specific code and how mips handles the mips16 flag. % cat mktime.i unsigned int __bswap_32 (unsigned int __bsx) { return __builtin_bswap32 (__bsx); } #pragma GCC optimize ("wrapv") inline int leapyear (long long int year) { return ((year & 3) == 0 && (year % 100 != 0 || ((year / 100) & 3) == (- (1900 / 100) & 3))); } mips-mti-linux-gnu-gcc -c -mips16 mktime.i mktime.i:7:1: internal compiler error: in save_optabs_if_changed, at optabs.c:6221 { ^ 0x8198e5 save_optabs_if_changed(tree_node*) /local/home/sellcey/gcc/linux_mips16/src/gcc/gcc/optabs.c:6221 0x4b090b decl_attributes(tree_node**, tree_node*, int) /local/home/sellcey/gcc/linux_mips16/src/gcc/gcc/attribs.c:545 0x4cf728 start_function(c_declspecs*, c_declarator*, tree_node*) /local/home/sellcey/gcc/linux_mips16/src/gcc/gcc/c/c-decl.c:7727 0x557114 c_common_parse_file() /local/home/sellcey/gcc/linux_mips16/src/gcc/gcc/c-family/c-opts.c:1046 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions.