Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

possible bug in gcc



Hi,

I'd like to know if it is only my gcc that has been messed up somehow or if anyone else running NetBSD on a powerpc arch (I'm running 1.6D macppc) can reproduce this bug as shown below. Note: the dummy-function used below is of course pretty useless but I'd still like gcc to produce at least an blr-instruction at the end. If I remove any of the case-blocks or if I use -O0 or -O1 gcc will produce correct code. Very strange. (I've also tried the procedure below on an i386 machine and there gcc produced correct code with -O2, that's why I posted this question on port-powerpc).

Thanks,
Erik

$ cc -v
Using builtin specs.
gcc version 2.95.3 20010315 (release) (NetBSD nb3)
$ cat > dummy.c
void
dummy(int i)
{
       int n;

       switch (i) {
       case 0:
               n = 0;
               break;
       case 1:
               n = 1;
               break;
       case 2:
               n = 2;
               break;
       case 3:
               n = 3;
               break;
       case 4:
               n = 4;
               break;
       }
}
^d
$ cc -O2 -c dummy.c
$ objdump -D dummy.o

dummy.o:     file format elf32-powerpc

Disassembly of section .text:

00000000 <dummy>:
  0:   28 03 00 04     cmplwi  r3,4
Disassembly of section .data:
$





Home | Main Index | Thread Index | Old Index