This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
egcs-19990927 on sparc-linux: ICE
- To: gcc-bugs at gcc dot gnu dot org
- Subject: egcs-19990927 on sparc-linux: ICE
- From: Horst von Brand <vonbrand at inf dot utfsm dot cl>
- Date: Wed, 29 Sep 1999 18:15:53 -0400
/*
* gcc -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7
* gcc: Internal compiler error: program cc1 got fatal signal 11
*
* This is linux-2.2.13pre14/drivers/sbus/char/zs.c chainsawed to size
*/
extern __inline__ void setipl(unsigned long __orig_psr)
{
__asm__ __volatile__(""
:
: "r" (__orig_psr)
: "memory", "cc");
}
struct tq_struct {
};
typedef struct tq_struct * task_queue;
extern __inline__ void queue_task(struct tq_struct *bh_pointer)
{
unsigned long flags;
flags = 117;
setipl(flags);
}
struct tty_flip_buffer {
struct tq_struct tqueue;
};
struct tty_struct {
struct tty_flip_buffer flip;
};
struct sun_serial {
struct sun_serial *zs_next;
struct tty_struct *tty;
};
static inline void receive_chars(struct sun_serial *info)
{
struct tty_struct *tty = info->tty;
queue_task(&tty->flip.tqueue);
}
void zs_interrupt(int irq, void *dev_id)
{
struct sun_serial *info = (struct sun_serial *)0x12345;
unsigned char zs_intreg;
zs_intreg = irq;
if (zs_intreg == 0x0c ) {
receive_chars(info);
return;
}
if(zs_intreg == 0x04 ) {
receive_chars(info->zs_next);
return;
}
info = info->zs_next->zs_next;
}