[gnu.gcc.bug] gcc 1.36 bug

wfs@CLI.COM (Bill Schelter) (02/01/90)

Bug in gcc 1.36

Compilation of the enclosed preprocessed file bug.c with the -O flag
yields the following bad assembler (this bug does not occur in gcc 1.35):

	movel d0,a6@(-16)
	.stabd 68,0,896
	movel a6@(-12),a1
	movel a1@(4),d0
	movel d0,a1
	andl a1@(4),d0         <--- This is wrong.
	movel d0,_FIXtemp
	addl #1024,d0


the corresponding line of C is:
	V39=  ((((FIXtemp=((( ((V37))->FIX.FIXVAL) & ( ((V38))->FIX.FIXVAL))))+1024)&-2048)==0? (object)(small_fixnum_table+1024+(FIXtemp)):make_fixnum(FIXtemp));


Print out of compiler flags:

 /usr/local/src/gcc-1.36/cpp -v -undef -D__GNUC__ -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__OPTIMIZE__ -D__HAVE_68881__ -Dmc68020 bug.c /tmp/cca26693.cpp
GNU CPP version 1.36
 /usr/local/src/gcc-1.36/cc1 /tmp/cca26693.cpp -quiet -dumpbase bug.c -g -O -version -o bug.s
GNU C version 1.36 (68k, MIT syntax) compiled by GNU C version 1.36.
default target switches: -m68020 -mc68020 -m68881 -mbitfield



Inserting file ~/tmp/bug.c
---Begin File ~/tmp/bug.c---
# 1 "newtrouble.c" 













# 1 "/usr/include/stdio.h" 1





extern	struct	_iobuf {
	int	_cnt;
	unsigned char *_ptr;
	unsigned char *_base;
	int	_bufsiz;
	short	_flag;
	char	_file;		
} _iob[];




























extern struct _iobuf	*fopen();
extern struct _iobuf	*fdopen();
extern struct _iobuf	*freopen();
extern struct _iobuf	*popen();
extern struct _iobuf	*tmpfile();
extern long	ftell();
extern char	*fgets();
extern char	*gets();
# 52 "/usr/include/stdio.h" 

extern char	*ctermid();
extern char	*cuserid();
extern char	*tempnam();
extern char	*tmpnam();






# 14 "newtrouble.c" 2

# 1 "/usr/include/setjmp.h" 1


# 5 "/usr/include/setjmp.h" 



typedef int jmp_buf[15];	

# 15 "newtrouble.c" 2

# 1 "/usr/include/varargs.h" 1


typedef char *va_list;




# 16 "newtrouble.c" 2



# 21 "newtrouble.c" 







typedef int bool;
typedef int fixnum;
typedef float shortfloat;
typedef double longfloat;
typedef  unsigned short fatchar;




typedef union lispunion *object;
typedef union int_object iobject;
union int_object {int i; object o;};


struct fixnum_struct {
		 short t,m;
	fixnum	FIXVAL;
};


extern struct fixnum_struct small_fixnum_table[];

struct shortfloat_struct {
			 short t,m;
	shortfloat	SFVAL;
};

struct longfloat_struct {
			 short t,m;
	longfloat	LFVAL;
};

struct character {
			 short t,m;
	unsigned short	ch_code;
	unsigned char	ch_font;
	unsigned char	ch_bits;
};
struct character character_table1[256+128];





enum stype {
	stp_ordinary,
	stp_constant,
        stp_special
};
struct symbol {
		 short t,m;
	object	s_dbind;
	int	(*s_sfdef)();


	int	 st_fillp;
	char	* st_self;
	object	s_gfdef;
	object	s_plist;
	object	s_hpack;
	short	s_stype;
	short	s_mflag;
};
struct cons {
		 short t,m;
	object	c_cdr;
	object	c_car;
};
struct array {
		 short t,m;
	short	a_rank;
	short	a_adjustable;
	int	a_dim;
	int	*a_dims;
	object	*a_self;
	object	a_displaced;
	short	a_elttype;
	short	a_offset;
};



struct fat_string {			
		 short t,m;
        unsigned fs_raw : 24;     
	unsigned char fs_leader_length;	 
	int	fs_dim;		
	int	fs_fillp;	
				
				
	fatchar 	*fs_self;	
};


struct vector {
		 short t,m;
	short	v_hasfillp;
	short	v_adjustable;
	int	v_dim;
	int	v_fillp;
	object	*v_self;
	object	v_displaced;
	short	v_elttype;
	short	v_offset;
};
struct string {
		 short t,m;
	short	st_hasfillp;
	short	st_adjustable;
	int	st_dim;
	int	st_fillp;
	char	*st_self;
	object	st_displaced;
};
struct ustring {
		 short t,m;
	short	ust_hasfillp;
	short	ust_adjustable;
	int	ust_dim;
	int	ust_fillp;
	unsigned char
		*ust_self;
	object	ust_displaced;
};


struct bitvector {
		 short t,m;
	short	bv_hasfillp;
	short	bv_adjustable;
	int	bv_dim;
	int	bv_fillp;
	char	*bv_self;
	object	bv_displaced;
	short	bv_elttype;
	short	bv_offset;
};
struct fixarray {
		 short t,m;
	short	fixa_rank;
	short	fixa_adjustable;
	int	fixa_dim;
	int	*fixa_dims;
	fixnum	*fixa_self;
	object	fixa_displaced;
	short	fixa_elttype;
	short	fixa_offset;
};
struct sfarray {
		 short t,m;
	short	sfa_rank;
	short	sfa_adjustable;
	int	sfa_dim;
	int	*sfa_dims;
	shortfloat
		*sfa_self;
	object	sfa_displaced;
	short	sfa_elttype;
	short	sfa_offset;
};
struct lfarray {
		 short t,m;
	short	lfa_rank;
	short	lfa_adjustable;
	int	lfa_dim;
	int	*lfa_dims;
	longfloat
		*lfa_self;
	object	lfa_displaced;
	short	lfa_elttype;
	short	lfa_offset;
};

struct structure {		
		 short t,m;
	object	str_def;	
	object	*str_self;	
};



struct cfun {
		 short t,m;
	object	cf_name;
	int	(*cf_self)();
	object	cf_data;
};

  struct dclosure {		
		 short t,m;
	int	(*dc_self)();	
	object	*dc_env;	
};

  struct cclosure {
		 short t,m;

	object	cc_name;
	int	(*cc_self)();
	object	cc_env;
	object	cc_data;
	object	*cc_turbo;
};

struct sfun {
	 short t,m;
	object	sfn_name;
	int	(*sfn_self)();
	object	sfn_data;
	int sfn_argd;

	      };
struct vfun {
		 short t,m; 
	object	vfn_name;
	int	(*vfn_self)();
	object	vfn_data;
	unsigned short vfn_minargs;
	unsigned short vfn_maxargs;
	      };

struct dummy {
		 short t,m;
};
struct stream {
		 short t,m;
	struct _iobuf	*sm_fp;		
	object	sm_object0;	
	object	sm_object1;	
	int	sm_int0;	
	int	sm_int1;	
	short	sm_mode;	
				
};
union lispunion {
	struct fixnum_struct
			FIX;
	struct shortfloat_struct
			SF;
	struct stream sm;
	struct longfloat_struct
			LF;
	struct character
			ch;
	struct symbol	s;
	struct cons	c;
	struct array	a;
	struct vector	v;
	struct string	st;
	struct ustring	ust;
	struct bitvector
			bv;
	struct structure
			str;
	struct cfun	cf;
	struct cclosure	cc;
	struct sfun     sfn;
	struct vfun     vfn;
	struct dummy	d;
        struct fat_string fs;
        struct dclosure dc;
	struct fixarray	fixa;
	struct sfarray	sfa;
	struct lfarray	lfa;
};
enum type {
	t_cons,
	t_start = 0 , 
	t_fixnum,
	t_bignum,
	t_ratio,
	t_shortfloat,
	t_longfloat,
	t_complex,
	t_character,
	t_symbol,
	t_package,
	t_hashtable,
	t_array,
	t_vector,
	t_string,
	t_bitvector,
	t_structure,
	t_stream,
	t_random,
	t_readtable,
	t_pathname,
	t_cfun,
	t_cclosure,
	t_sfun,
        t_gfun,
	t_vfun,
	t_cfdata,
	t_spice,
	t_fat_string,
        t_dclosure,
	t_end,
	t_contiguous,
	t_relocatable,
	t_other
};


extern object value_stack[];

object *vs_limit;
object *vs_base;
object *vs_top;




















struct bds_bd {
	object	bds_sym;
	object	bds_val;
};
extern struct bds_bd bind_stack[];
typedef struct bds_bd *bds_ptr;
bds_ptr bds_org;
bds_ptr bds_limit;
bds_ptr bds_top;









typedef struct invocation_history {
	object	ihs_function;
	object	*ihs_base;
} *ihs_ptr;
extern struct invocation_history ihs_stack[];
ihs_ptr ihs_org;
ihs_ptr ihs_limit;
ihs_ptr ihs_top;







enum fr_class {
	FRS_CATCH,
	FRS_CATCHALL,
	FRS_PROTECT
};
struct frame {
	jmp_buf		frs_jmpbuf;
	object		*frs_lex;
	bds_ptr		frs_bds_top;
	enum fr_class	frs_class;
	object		frs_val;
	ihs_ptr		frs_ihs;
};
typedef struct frame *frame_ptr;

extern struct frame frame_stack[];

frame_ptr frs_org;
frame_ptr frs_limit;
frame_ptr frs_top;










bool nlj_active;
frame_ptr nlj_fr;
object nlj_tag;
object *lex_env;
object caar();
object cadr();
object cdar();
object cddr();
object caaar();
object caadr();
object cadar();
object caddr();
object cdaar();
object cdadr();
object cddar();
object cdddr();
object caaaar();
object caaadr();
object caadar();
object caaddr();
object cadaar();
object cadadr();
object caddar();
object cadddr();
object cdaaar();
object cdaadr();
object cdadar();
object cdaddr();
object cddaar();
object cddadr();
object cdddar();
object cddddr();



































object simple_lispcall();
object simple_lispcall_no_event();
object simple_symlispcall();
object simple_symlispcall_no_event();
object CMPtemp;
object CMPtemp1;
object CMPtemp2;
object CMPtemp3;


struct symbol Cnil_body, Ct_body;
object MF();
object MFnew();
object MM();
object Scons;
object siSfunction_documentation;
object siSvariable_documentation;
object siSpretty_print_format;
object Slist;
object keyword_package;
object alloc_object();
object car();
object cdr();
object list();
object listA();
object coerce_to_string();
object elt();
object elt_set();
frame_ptr frs_sch();
frame_ptr frs_sch_catch();
object make_cclosure();
object nth();
object nthcdr();
object make_cons();
object append();
object nconc();
object reverse();
object nreverse();
object number_expt();
object number_minus();
object number_negate();
object number_plus();
object number_times();
object one_minus();
object one_plus();
object get();
object getf();
object putprop();
object remprop();
object string_to_object();
object symbol_function();
object symbol_value();
object make_fixnum();
object make_shortfloat();
object make_longfloat();
object structure_ref();
object structure_set();
object princ();
object prin1();
object print();
object terpri();
object aref();
object aset();
object aref1();
object aset1();
void call_or_link();
object call_proc();
object call_proc0();
object call_proc1();
object call_proc2();
object ifuncall();   
object ifuncall1();
object ifuncall2();
object symbol_name();
char object_to_char();
int object_to_int();
float object_to_float();
double object_to_double();
char *object_to_string();
int FIXtemp;




double sin(), cos(), tan();
object read_byte1(),read_char1();



object make_list();

char *alloca();
char *alloca_val;





object on_stack_cons();
object on_stack_list();
object on_stack_list_vector();
object on_stack_make_list();
# 594 "newtrouble.c" 



struct call_data { object fun;
		   int argd;};
struct call_data fcall;
object  fcalln();
object list_vector();
object MVloc[10];


extern object Cstd_key_defaults[];
int vfun_wrong_number_of_args();






# 1 "./newtrouble.h" 1

static L1();



static char *Cstart;static int Csize;static object Cdata;



static object VV[19];
static  LnkT17() ;
static  (*Lnk17)() = LnkT17;
static  LnkT16() ;
static  (*Lnk16)() = LnkT16;
static  LnkT15() ;
static  (*Lnk15)() = LnkT15;
static object  LnkTLI14() ;
static object  (*LnkLI14)() = LnkTLI14;
static  LnkT13() ;
static  (*Lnk13)() = LnkT13;
static  LnkT12() ;
static  (*Lnk12)() = LnkT12;
static  LnkT11() ;
static  (*Lnk11)() = LnkT11;
static  LnkT10() ;
static  (*Lnk10)() = LnkT10;
# 613 "newtrouble.c" 2
init_code(start,size,data)char *start;int size;object data;
{	register object *base=vs_top; register object *sup=base+0;vs_top=sup;if (vs_top >= vs_limit) vs_overflow();;
	Cstart=start;Csize=size;Cdata=data;set_VV_data(VV,19,data,start,size);
	data->v.v_self[2]=VV[2]=string_to_object(VV[2]);
	vs_top=sup;
	data->v.v_self[5]=VV[5]=string_to_object(VV[5]);
	vs_top=sup;
	data->v.v_self[7]=VV[7]=string_to_object(VV[7]);
	vs_top=sup;
	MFnew(VV[8],L1,data);
	(void)putprop(VV[8],VV[18],VV[9]);
	vs_top=vs_base=base;
}


static L1()
{register object *base=vs_base;
	register object *sup=base+21; object V83 ,V81 ,V80 ,V78 ,V70 ,V68 ,V67 ,V65 ,V57 ,V54 ,V51 ,V50 ,V49 ,V48 ,V47 ,V26 ,V25 ,V24 ,V22; int V17 ,V15;
	if (vs_top >= vs_limit) vs_overflow();;
	{object V1;
	register object V2;
	register object V3;
	register object V4;
	V1=(base[0]);
	V2=(base[1]);
	V3=(base[2]);
	V4=(base[3]);
	vs_top=sup;
TTL:;
	{register object V5;
	register object V6;
	if(!( ((enum type)(((object)(V1))->d.t))==t_cons)){
	goto T3;}
	if(!( (V1)->c.c_car==VV[0])){
	goto T3;}
	(void)((MVloc[(1)]=( ( (V1)->c.c_cdr)->c.c_car)));
	V5= ((object)&Ct_body);
	goto T1;
T3:;
	(void)((MVloc[(1)]=(V1)));
	V5= ((object)&Cnil_body);
T1:;
	V6= (MVloc[(1)]);
	if(!( ((enum type)(((object)((V6)))->d.t))!=t_cons)){
	goto T11;}
	base[4]= (V5);
	base[5]= (V6);
	base[6]= (V2);
	base[7]= (V3);
	base[8]= (V4);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk10)();
	return;
T11:;
	if(!(VV[1]== ((V6))->c.c_car)){
	goto T19;}
	if(!(equal((V6),VV[2]))){
	goto T22;}
	base[4]= (V5);
	base[5]= ((object)&Cnil_body);
	base[6]= ((object)&Ct_body);
	base[7]= ((object)&Cnil_body);
	base[8]= (V3);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T22:;
	base[4]= (V5);
	base[5]= ((object)&Ct_body);
	base[6]= ((object)&Cnil_body);
	base[7]= (V3);
	base[8]= ((object)&Cnil_body);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T19:;
	if(!( ((enum type)(((object)( (V6)->c.c_car))->d.t))==t_cons)){
	goto T35;}
	base[4]= (V5);
	base[5]= (V6);
	base[6]= (V2);
	base[7]= (V3);
	base[8]= (V4);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk10)();
	return;
T35:;
	{object V11;
	base[4]=  ((V6))->c.c_car;
	base[6]= VV[3];
	base[7]= (V4);
	vs_top=(vs_base=base+6)+2;
	(void) (*Lnk12)();
	vs_top=sup;
	base[5]= vs_base[0];
	vs_top=(vs_base=base+4)+2;
	(void) (*Lnk13)();
	vs_top=sup;
	V11= vs_base[0];
	if(((V11))==((object)&Cnil_body)){
	goto T48;}
	{object V12;
	object V13;
	object V14;
	V12= (*(LnkLI14))( ( ((V6))->c.c_cdr)->c.c_car,(V2),(V3),(V4));
	V15=  ( ( (V11)->c.c_cdr)->c.c_car)->FIX.FIXVAL;
	V13=  ((((FIXtemp=((( ((V12))->FIX.FIXVAL) & (V15))))+1024)&-2048)==0? (object)(small_fixnum_table+1024+(FIXtemp)):make_fixnum(FIXtemp));
	V17=  ( ( ( (V11)->c.c_cdr)->c.c_cdr)->c.c_car)->FIX.FIXVAL;
	V14=  ((((FIXtemp=((( ((V12))->FIX.FIXVAL) & (V17))))+1024)&-2048)==0? (object)(small_fixnum_table+1024+(FIXtemp)):make_fixnum(FIXtemp));
	if(!(( ((V13))->FIX.FIXVAL)==(0))){
	goto T56;}
	base[7]= (V5);
	base[8]= ((object)&Cnil_body);
	base[9]= ((object)&Ct_body);
	base[10]= ((object)&Cnil_body);
	base[11]= (V3);
	vs_top=(vs_base=base+7)+5;
	(void) (*Lnk11)();
	return;
T56:;
	if(!(( ((V14))->FIX.FIXVAL)==(0))){
	goto T64;}
	base[7]= (V5);
	base[8]= ((object)&Ct_body);
	base[9]= ((object)&Cnil_body);
	base[10]= (V3);
	base[11]= ((object)&Cnil_body);
	vs_top=(vs_base=base+7)+5;
	(void) (*Lnk11)();
	return;
T64:;
	{object V19;
	object V20;
	if(( ( ( (V11)->c.c_cdr)->c.c_cdr)->c.c_cdr)==((object)&Cnil_body)){
	goto T73;}
	V19= (V3);
	goto T71;
T73:;
	V22= make_cons((V6), (object)(small_fixnum_table+1024+(64)));
	V19= make_cons(V22,(V3));
T71:;
	if(( ( ( (V11)->c.c_cdr)->c.c_cdr)->c.c_cdr)==((object)&Cnil_body)){
	goto T77;}
	V20= (V3);
	goto T75;
T77:;
	V24= make_cons((V6), (object)(small_fixnum_table+1024+(32)));
	V20= make_cons(V24,(V3));
T75:;
	base[7]= (V5);
	base[8]= ((object)&Cnil_body);
	base[9]= ((object)&Cnil_body);
	V25= make_cons( ( ((V6))->c.c_cdr)->c.c_car,(V13));
	base[10]= make_cons(V25,(V19));
	V26= make_cons( ( ((V6))->c.c_cdr)->c.c_car,(V14));
	base[11]= make_cons(V26,(V20));
	vs_top=(vs_base=base+7)+5;
	(void) (*Lnk11)();
	return;}}
T48:;
	if(!( ((V6))->c.c_car==VV[4])){
	goto T85;}
	{object V27;
	object V28;
	V27=  ( ((V6))->c.c_cdr)->c.c_car;
	V28=  ( ( ((V6))->c.c_cdr)->c.c_cdr)->c.c_car;
	if(!(equal((V27),(V28)))){
	goto T90;}
	base[4]= (V5);
	base[5]= ((object)&Ct_body);
	base[6]= ((object)&Cnil_body);
	base[7]= (V3);
	base[8]= ((object)&Cnil_body);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T90:;
	{object V29;
	base[4]= (V6);
	base[5]= (V3);
	vs_top=(vs_base=base+4)+2;
	(void) (*Lnk15)();
	vs_top=sup;
	V29= vs_base[0];
	if(((V29))==((object)&Cnil_body)){
	goto T101;}
	if(!(( ( ((V29))->c.c_cdr)->FIX.FIXVAL)==(64))){
	goto T104;}
	base[4]= (V5);
	base[5]= ((object)&Ct_body);
	base[6]= ((object)&Cnil_body);
	base[7]= (V3);
	base[8]= ((object)&Cnil_body);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T104:;
	if(!(( ( ((V29))->c.c_cdr)->FIX.FIXVAL)==(32))){
	goto T112;}
	base[4]= (V5);
	base[5]= ((object)&Cnil_body);
	base[6]= ((object)&Ct_body);
	base[7]= ((object)&Cnil_body);
	base[8]= (V3);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T112:;
	{object V30;
	base[4]= (V3);
	base[5]= (V6);
	base[6]= (V29);
	vs_top=(vs_base=base+4)+3;
	(void) (*Lnk16)();
	vs_top=sup;
	V30= vs_base[0];
	(void)((MVloc[(1)]=(((object)&Cnil_body))));
	(void)((MVloc[(2)]=(((object)&Cnil_body))));
	(void)((MVloc[(3)]=(((object)&Cnil_body))));
	base[4]= V30;
	vs_top=(vs_base=base+4)+1;
	return;}
T101:;
	{object V32;
	object V33;
	V32= list(3,VV[4],(V28),(V27));
	base[6]= (V32);
	base[7]= (V3);
	vs_top=(vs_base=base+6)+2;
	(void) (*Lnk15)();
	vs_top=sup;
	V33= vs_base[0];
	if(((V33))==((object)&Cnil_body)){
	goto T131;}
	if(!(( ( ((V33))->c.c_cdr)->FIX.FIXVAL)==(64))){
	goto T134;}
	base[6]= (V5);
	base[7]= ((object)&Ct_body);
	base[8]= ((object)&Cnil_body);
	base[9]= (V3);
	base[10]= ((object)&Cnil_body);
	vs_top=(vs_base=base+6)+5;
	(void) (*Lnk11)();
	return;
T134:;
	if(!(( ( ((V33))->c.c_cdr)->FIX.FIXVAL)==(32))){
	goto T142;}
	base[6]= (V5);
	base[7]= ((object)&Cnil_body);
	base[8]= ((object)&Ct_body);
	base[9]= ((object)&Cnil_body);
	base[10]= (V3);
	vs_top=(vs_base=base+6)+5;
	(void) (*Lnk11)();
	return;
T142:;
	{object V34;
	base[6]= (V3);
	base[7]= (V32);
	base[8]= (V33);
	vs_top=(vs_base=base+6)+3;
	(void) (*Lnk16)();
	vs_top=sup;
	V34= vs_base[0];
	(void)((MVloc[(1)]=(((object)&Cnil_body))));
	(void)((MVloc[(2)]=(((object)&Cnil_body))));
	(void)((MVloc[(3)]=(((object)&Cnil_body))));
	base[6]= V34;
	vs_top=(vs_base=base+6)+1;
	return;}
T131:;
	{object V36;
	register object V37;
	object V38;
	object V39;
	base[10]= (V27);
	base[11]= (V28);
	vs_top=(vs_base=base+10)+2;
	(void) (*Lnk17)();
	vs_top=sup;
	V36= vs_base[0];
	V37= (*(LnkLI14))((V27),(V2),(V3),(V4));
	V38= (*(LnkLI14))((V28),(V2),(V3),(V4));
	V39=  ((((FIXtemp=((( ((V37))->FIX.FIXVAL) & ( ((V38))->FIX.FIXVAL))))+1024)&-2048)==0? (object)(small_fixnum_table+1024+(FIXtemp)):make_fixnum(FIXtemp));
	if(!(( ((V39))->FIX.FIXVAL)==(0))){
	goto T163;}
	base[10]= (V5);
	base[11]= ((object)&Cnil_body);
	base[12]= ((object)&Ct_body);
	base[13]= ((object)&Cnil_body);
	base[14]= (V3);
	vs_top=(vs_base=base+10)+5;
	(void) (*Lnk11)();
	return;
T163:;
	if(!(( ((V37))->FIX.FIXVAL)==( ((V38))->FIX.FIXVAL))){
	goto T171;}
	{register object x= (V37),V40= VV[5];
	while(V40!=((object)&Cnil_body))
	if(eql(x,V40->c.c_car)){
	goto T174;
	}else V40=V40->c.c_cdr;
	goto T171;}
T174:;
	base[10]= (V5);
	base[11]= ((object)&Ct_body);
	base[12]= ((object)&Cnil_body);
	base[13]= (V3);
	base[14]= ((object)&Cnil_body);
	vs_top=(vs_base=base+10)+5;
	(void) (*Lnk11)();
	return;
T171:;
	{object V41;
	object V42;
	object V43;
	object V44;
	object V45;
	object V46;
	if(((V36))==((object)&Cnil_body)){
	goto T183;}
	V47= (V32);
	goto T181;
T183:;
	V47= (V6);
T181:;
	V48= make_cons(V47, (object)(small_fixnum_table+1024+(64)));
	V41= make_cons(V48,(V3));
	if(!(( ((V37))->FIX.FIXVAL)==( ((V39))->FIX.FIXVAL))){
	goto T187;}
	V42= (V41);
	goto T185;
T187:;
	V49= make_cons((V27),(V39));
	V42= make_cons(V49,(V41));
T185:;
	if(!(( ((V38))->FIX.FIXVAL)==( ((V39))->FIX.FIXVAL))){
	goto T191;}
	V43= (V42);
	goto T189;
T191:;
	V50= make_cons((V28),(V39));
	V43= make_cons(V50,(V42));
T189:;
	V51= make_cons((V6), (object)(small_fixnum_table+1024+(32)));
	V44= listA(3,V51,make_cons((V32), (object)(small_fixnum_table+1024+(32))),(V3));
	{register object x= (V38),V52= VV[5];
	while(V52!=((object)&Cnil_body))
	if(eql(x,V52->c.c_car)){
	goto T197;
	}else V52=V52->c.c_cdr;
	goto T196;}
T197:;{object V53;
	V53=  ((((FIXtemp=((( ((V37))->FIX.FIXVAL) & ((~( ((V38))->FIX.FIXVAL))))))+1024)&-2048)==0? (object)(small_fixnum_table+1024+(FIXtemp)):make_fixnum(FIXtemp));
	V54= make_cons((V27),V53);
	V45= make_cons(V54,(V44));
	goto T194;}
T196:;
	V45= (V44);
T194:;
	{register object x= (V37),V55= VV[5];
	while(V55!=((object)&Cnil_body))
	if(eql(x,V55->c.c_car)){
	goto T201;
	}else V55=V55->c.c_cdr;
	goto T200;}
T201:;{object V56;
	V56=  ((((FIXtemp=((( ((V38))->FIX.FIXVAL) & ((~( ((V37))->FIX.FIXVAL))))))+1024)&-2048)==0? (object)(small_fixnum_table+1024+(FIXtemp)):make_fixnum(FIXtemp));
	V57= make_cons((V28),V56);
	V46= make_cons(V57,(V45));
	goto T198;}
T200:;
	V46= (V45);
T198:;
	base[16]= (V5);
	base[17]= ((object)&Cnil_body);
	base[18]= ((object)&Cnil_body);
	base[19]= (V43);
	base[20]= (V46);
	vs_top=(vs_base=base+16)+5;
	(void) (*Lnk11)();
	return;}}}}}
T85:;
	if(!( ((V6))->c.c_car==VV[6])){
	goto T208;}
	if(!(equal( ( ((V6))->c.c_cdr)->c.c_car,VV[7]))){
	goto T211;}
	{object V58;
	V58= (*(LnkLI14))( ( ( ((V6))->c.c_cdr)->c.c_cdr)->c.c_car,(V2),(V3),(V4));
	if(!(((( (V58)->FIX.FIXVAL) & ( ( (object)(small_fixnum_table+1024+(31)))->FIX.FIXVAL)))==( (V58)->FIX.FIXVAL))){
	goto T215;}
	if(!(((( (V58)->FIX.FIXVAL) & ( ( (object)(small_fixnum_table+1024+(6)))->FIX.FIXVAL)))==( (V58)->FIX.FIXVAL))){
	goto T218;}
	base[4]= (V5);
	base[5]= ((object)&Ct_body);
	base[6]= ((object)&Cnil_body);
	base[7]= (V3);
	base[8]= ((object)&Cnil_body);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T218:;
	if(!(((( (V58)->FIX.FIXVAL) & ( ( (object)(small_fixnum_table+1024+(25)))->FIX.FIXVAL)))==( (V58)->FIX.FIXVAL))){
	goto T226;}
	base[4]= (V5);
	base[5]= ((object)&Cnil_body);
	base[6]= ((object)&Ct_body);
	base[7]= ((object)&Cnil_body);
	base[8]= (V3);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T226:;
	base[4]= (V5);
	base[5]= ((object)&Cnil_body);
	base[6]= ((object)&Cnil_body);
	V65=  ( ( ((V6))->c.c_cdr)->c.c_cdr)->c.c_car;{object V66;
	V66=  ((((FIXtemp=((( ((V58))->FIX.FIXVAL) & (6))))+1024)&-2048)==0? (object)(small_fixnum_table+1024+(FIXtemp)):make_fixnum(FIXtemp));
	V67= make_cons(V65,V66);
	base[7]= make_cons(V67,(V3));}
	V68=  ( ( ((V6))->c.c_cdr)->c.c_cdr)->c.c_car;{object V69;
	V69=  ((((FIXtemp=((( ((V58))->FIX.FIXVAL) & (25))))+1024)&-2048)==0? (object)(small_fixnum_table+1024+(FIXtemp)):make_fixnum(FIXtemp));
	V70= make_cons(V68,V69);
	base[8]= make_cons(V70,(V3));}
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T215:;
	base[4]= (V5);
	base[5]= (V6);
	base[6]= (V2);
	base[7]= (V3);
	base[8]= (V4);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk10)();
	return;}
T211:;
	if(!(equal( ( ( ((V6))->c.c_cdr)->c.c_cdr)->c.c_car,VV[7]))){
	goto T244;}
	{object V71;
	V71= (*(LnkLI14))( ( ((V6))->c.c_cdr)->c.c_car,(V2),(V3),(V4));
	if(!(((( (V71)->FIX.FIXVAL) & ( ( (object)(small_fixnum_table+1024+(31)))->FIX.FIXVAL)))==( (V71)->FIX.FIXVAL))){
	goto T248;}
	if(!(((( (V71)->FIX.FIXVAL) & ( ( (object)(small_fixnum_table+1024+(24)))->FIX.FIXVAL)))==( (V71)->FIX.FIXVAL))){
	goto T251;}
	base[4]= (V5);
	base[5]= ((object)&Ct_body);
	base[6]= ((object)&Cnil_body);
	base[7]= (V3);
	base[8]= ((object)&Cnil_body);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T251:;
	if(!(((( (V71)->FIX.FIXVAL) & ( ( (object)(small_fixnum_table+1024+(7)))->FIX.FIXVAL)))==( (V71)->FIX.FIXVAL))){
	goto T259;}
	base[4]= (V5);
	base[5]= ((object)&Cnil_body);
	base[6]= ((object)&Ct_body);
	base[7]= ((object)&Cnil_body);
	base[8]= (V3);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T259:;
	base[4]= (V5);
	base[5]= ((object)&Cnil_body);
	base[6]= ((object)&Cnil_body);
	V78=  ( ((V6))->c.c_cdr)->c.c_car;{object V79;
	V79=  ((((FIXtemp=((( ((V71))->FIX.FIXVAL) & (24))))+1024)&-2048)==0? (object)(small_fixnum_table+1024+(FIXtemp)):make_fixnum(FIXtemp));
	V80= make_cons(V78,V79);
	base[7]= make_cons(V80,(V3));}
	V81=  ( ((V6))->c.c_cdr)->c.c_car;{object V82;
	V82=  ((((FIXtemp=((( ((V71))->FIX.FIXVAL) & (7))))+1024)&-2048)==0? (object)(small_fixnum_table+1024+(FIXtemp)):make_fixnum(FIXtemp));
	V83= make_cons(V81,V82);
	base[8]= make_cons(V83,(V3));}
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk11)();
	return;
T248:;
	base[4]= (V5);
	base[5]= (V6);
	base[6]= (V2);
	base[7]= (V3);
	base[8]= (V4);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk10)();
	return;}
T244:;
	base[4]= (V5);
	base[5]= (V6);
	base[6]= (V2);
	base[7]= (V3);
	base[8]= (V4);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk10)();
	return;
T208:;
	base[4]= (V5);
	base[5]= (V6);
	base[6]= (V2);
	base[7]= (V3);
	base[8]= (V4);
	vs_top=(vs_base=base+4)+5;
	(void) (*Lnk10)();
	return;}}
	}
}
static LnkT17(){ call_or_link(VV[17],&Lnk17);} 
static LnkT16(){ call_or_link(VV[16],&Lnk16);} 
static LnkT15(){ call_or_link(VV[15],&Lnk15);} 
static object  LnkTLI14(va_alist)int va_alist;{va_list ap; ap = (char *) &va_alist;return(object )call_proc(VV[14],&LnkLI14,4,ap);} 
static LnkT13(){ call_or_link(VV[13],&Lnk13);} 
static LnkT12(){ call_or_link(VV[12],&Lnk12);} 
static LnkT11(){ call_or_link(VV[11],&Lnk11);} 
static LnkT10(){ call_or_link(VV[10],&Lnk10);} 
---End File ~/tmp/bug.c---