This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/31482] New: error: could not split insn, internal compiler error: in final_scan_insn


M32C C-compiler 4.2.0 stop with this error:

ctest.c: In function 'Modbus_Frekvens_Init':
ctest.c:44: error: could not split insn
(insn 50 49 59 (set (mem/c:QI (plus:PSI (reg/f:PSI 7 fb)
                (const_int -2 [0xfffffffe])) [0 card+0 S1 A8])
        (if_then_else:QI (ne:QI (reg:HI 0 r0 [27])
                (const_int 0 [0x0]))
            (const_int 2 [0x2])
            (const_int 1 [0x1]))) 151 {movqicc_ne_hi} (insn_list:REG_DEP_TRUE
11 (nil))
    (expr_list:REG_DEAD (reg:HI 0 r0 [27])
        (nil)))
ctest.c:44: internal compiler error: in final_scan_insn, at final.c:2449
Please submit a full bug report,
with preprocessed source if appropriate.

   Have tried same code with 4.1.1 m32c and h8300 target no problem.

Gcc version:
m32c-4.2.0/m32c-elf/bin/gcc -v
Using built-in specs.
Target: m32c-elf
Configured with: ../configure --prefix=/Users/bengtwir/GNU/m32c-4.2.0
--target=m32c-elf --program-prefix=m32c-elf- --enable-languages=c --with-gnu-as
--with-gnu-ld --disable-nls --with-newlib
Thread model: single

Source code: ctest.c


/*

         fail 
m32c-4.2.0/m32c-elf/bin/gcc -O -mcpu=m32c ctest.c
m32c-4.2.0/m32c-elf/bin/gcc -O -mcpu=m16c ctest.c

         OK 
m32c-4.1.1/m32c-elf/bin/gcc -O -mcpu=m32c ctest.c
h8300-4.1.1/h8300-hms/bin/gcc -O ctest.c

*/

typedef unsigned char Byte;
typedef unsigned short UInt16;


typedef struct rec {
UInt16  size;
UInt16  text;
}rec;


void Modbus_Frekvens_Init(void);


Byte    b;
UInt16  i;
rec     *rr;

void Modbus_Frekvens_Init(void)
{
Byte    card;


        if (rr->size & 2)
                card = 0x02;
        else
                card = 0x01; 

        if (rr->text == 2)
                {
                b = 2;
                }

        i = card*0x100 + 0x01; 
}


-- 
           Summary: error: could not split insn, internal compiler error: in
                    final_scan_insn
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bengt at digisign dot se
  GCC host triplet: Mac OSX 10.4.9
GCC target triplet: m32c-elf 4.2.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31482


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]