Package: gcc-2.95
Version: 1:2.95.4-1
Severity: normal

This version of the C compiler generates an Internal Compiler Error
with the following input:

--------------------- bug.c ---------------------
enum tipo { tc_int, tc_float, tc_nulo };
struct dato_vm
{
   enum tipo t;
   union
   {
      int val;
      float fval;
   } u;
};

int do_bug;
int fn_do_bug( struct dato_vm d )
{
   if(d.t == tc_float)
   {
      d.u.val = (int)d.u.fval;
      d.t = tc_int;
   }
   return d.u.val;
}
--------------------------------------------------

The output is:

--------------------------------------------------
$ gcc -O2 -Wall bug.c -c
bug.c: In function `fn_do_bug':
bug.c:23: Internal compiler error:
bug.c:23: Unable to generate reloads for:
(insn 16 14 19 (parallel[ 
            (set (subreg:SI (reg/v:DI 0 %eax) 1)
                (fix:SI (fix:SF (subreg:SF (reg/v:DI 0 %eax) 1))))
            (clobber (mem:HI (plus:SI (reg:SI 6 %ebp)
                        (const_int -2 [0xfffffffe])) 0))
            (clobber (mem:HI (plus:SI (reg:SI 6 %ebp)
                        (const_int -4 [0xfffffffc])) 0))
            (clobber (mem:SI (plus:SI (reg:SI 6 %ebp)
                        (const_int -8 [0xfffffff8])) 0))
            (clobber (scratch:HI))
        ] ) 145 {fix_truncsfsi2+1} (nil)
    (expr_list:REG_UNUSED (scratch:HI)
        (nil)))
--------------------------------------------------

Other gcc versions don't produce this.


-- System Information
Debian Release: 3.0
Kernel Version: Linux pc2 2.4.18-pre7 #1 Thu Jan 24 12:38:39 CLST 2002 i686 
unknown

Versions of the packages gcc-2.95 depends on:
ii  binutils       2.11.92.0.12.3 The GNU assembler, linker and binary utiliti
ii  cpp-2.95       2.95.4-1       The GNU C preprocessor.
ii  gcc            2.95.4-9       The GNU C compiler.
ii  libc6          2.2.4-7        GNU C Library: Shared libraries and Timezone


Reply via email to