Failure on Android ARM64/aarch64 pasted by alexshendi on Sun Apr 17 20:41:11 2016

$ cat foo.scm
(define (foo2a x1 x2 #!optional (x3 -3) (x4 -4))
  (for-each display (list x3 "   " x4 "   " (integer? x3) "   " (integer? x4) #\newline))
  (list x1 x2 x3 x4))

(define (test)
  (equal? '(1  2  -3  -4) (foo2a 1 2)))

(display '(1  2  -3  -4))
(newline)
(display (foo2a 1 2)) ;; --> (1 2 -3 -4)
(newline)
(display (test)) ;; --> #f
(newline)
$ ./foo1
(1 2 4294967293 4294967292)
-3   -4   #t   #t
(1 2 -3 -4)
-3   -4   #t   #t
#f
$ exit

C source file added by alexshendi on Sun Apr 17 21:00:23 2016

/* Generated from foo1.scm by the CHICKEN compiler
   http://www.call-cc.org
   2016-04-17 20:53
   Version 4.11.0rc1 ((detached from 4.11.0rc1)) (rev 44cb24e)
   android-android-gnu-unknown [ 64bit manyargs dload ptables ]
   compiled 2016-04-04 on waldrop (Linux)
   command line: foo1.scm -output-file foo1.c -optimize-level 2
   used units: library eval chicken_2dsyntax
*/

#include "chicken.h"

static C_PTABLE_ENTRY *create_ptable(void);
C_noret_decl(C_library_toplevel)
C_externimport void C_ccall C_library_toplevel(C_word c,C_word *av) C_noret;
C_noret_decl(C_eval_toplevel)
C_externimport void C_ccall C_eval_toplevel(C_word c,C_word *av) C_noret;
C_noret_decl(C_chicken_2dsyntax_toplevel)
C_externimport void C_ccall C_chicken_2dsyntax_toplevel(C_word c,C_word *av) C_noret;

static C_TLS C_word lf[11];
static double C_possibly_force_alignment;
static C_char C_TLS li0[] C_aligned={C_lihdr(0,0,23),40,102,111,114,45,101,97,99,104,45,108,111,111,112,50,49,32,103,50,56,51,50,41,0};
static C_char C_TLS li1[] C_aligned={C_lihdr(0,0,23),40,102,111,111,50,97,32,120,49,54,32,120,50,55,32,46,32,116,109,112,53,56,41,0};
static C_char C_TLS li2[] C_aligned={C_lihdr(0,0,6),40,116,101,115,116,41,0,0};
static C_char C_TLS li3[] C_aligned={C_lihdr(0,0,10),40,116,111,112,108,101,118,101,108,41,0,0,0,0,0,0};


C_noret_decl(f_257)
static void C_ccall f_257(C_word c,C_word *av) C_noret;
C_noret_decl(f_255)
static void C_ccall f_255(C_word c,C_word *av) C_noret;
C_noret_decl(f_252)
static void C_ccall f_252(C_word c,C_word *av) C_noret;
C_noret_decl(f_294)
static void C_ccall f_294(C_word c,C_word *av) C_noret;
C_noret_decl(f_356)
static void C_ccall f_356(C_word c,C_word *av) C_noret;
C_noret_decl(f_359)
static void C_ccall f_359(C_word c,C_word *av) C_noret;
C_noret_decl(f_353)
static void C_ccall f_353(C_word c,C_word *av) C_noret;
C_noret_decl(f_350)
static void C_ccall f_350(C_word c,C_word *av) C_noret;
C_noret_decl(C_toplevel)
C_externexport void C_ccall C_toplevel(C_word c,C_word *av) C_noret;
C_noret_decl(f_365)
static void C_ccall f_365(C_word c,C_word *av) C_noret;
C_noret_decl(f_368)
static void C_ccall f_368(C_word c,C_word *av) C_noret;
C_noret_decl(f_279)
static void C_ccall f_279(C_word c,C_word *av) C_noret;
C_noret_decl(f_362)
static void C_ccall f_362(C_word c,C_word *av) C_noret;
C_noret_decl(f_375)
static void C_ccall f_375(C_word c,C_word *av) C_noret;
C_noret_decl(f_339)
static void C_ccall f_339(C_word c,C_word *av) C_noret;
C_noret_decl(f_379)
static void C_ccall f_379(C_word c,C_word *av) C_noret;
C_noret_decl(f_249)
static void C_ccall f_249(C_word c,C_word *av) C_noret;
C_noret_decl(f_284)
static void C_fcall f_284(C_word t0,C_word t1,C_word t2) C_noret;
C_noret_decl(f_371)
static void C_ccall f_371(C_word c,C_word *av) C_noret;
C_noret_decl(f_347)
static void C_ccall f_347(C_word c,C_word *av) C_noret;

C_noret_decl(trf_284)
static void C_ccall trf_284(C_word c,C_word *av) C_noret;
static void C_ccall trf_284(C_word c,C_word *av){
C_word t0=av[2];
C_word t1=av[1];
C_word t2=av[0];
f_284(t0,t1,t2);}

/* foo2a in k253 in k250 in k247 */
static void C_ccall f_257(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2=av[2];
C_word t3=av[3];
C_word t4;
C_word *a;
if(c<4) C_bad_min_argc_2(c,4,t0);
C_check_for_interrupt;
if(!C_demand(C_calculate_demand((c-4)*C_SIZEOF_PAIR +37,c,3))){
C_save_and_reclaim((void*)f_257,c,av);}
a=C_alloc((c-4)*C_SIZEOF_PAIR+37);
t4=C_build_rest(&a,c,4,av);
C_word t5;
C_word t6;
C_word t7;
C_word t8;
C_word t9;
C_word t10;
C_word t11;
C_word t12;
C_word t13;
C_word t14;
C_word t15;
C_word t16;
C_word t17;
C_word t18;
C_word t19;
C_word t20;
C_word t21;
C_word t22;
C_word t23;
t5=C_i_nullp(t4);
t6=(C_truep(t5)?C_fix(-3):C_i_car(t4));
t7=t6;
t8=C_i_nullp(t4);
t9=(C_truep(t8)?C_SCHEME_END_OF_LIST:C_i_cdr(t4));
t10=C_i_nullp(t9);
t11=(C_truep(t10)?C_fix(-4):C_i_car(t9));
t12=t11;
t13=C_i_nullp(t9);
t14=(C_truep(t13)?C_SCHEME_END_OF_LIST:C_i_cdr(t9));
t15=C_i_integerp(t7);
t16=C_i_integerp(t12);
t17=C_a_i_list8(&a,8,t7,lf[1],t12,lf[2],t15,lf[3],t16,C_make_character(10));
t18=C_i_check_list_2(t17,lf[4]);
t19=(*a=C_CLOSURE_TYPE|6,a[1]=(C_word)f_279,a[2]=t1,a[3]=t2,a[4]=t3,a[5]=t7,a[6]=t12,tmp=(C_word)a,a+=7,tmp);
t20=C_SCHEME_UNDEFINED;
t21=(*a=C_VECTOR_TYPE|1,a[1]=t20,tmp=(C_word)a,a+=2,tmp);
t22=C_set_block_item(t21,0,(*a=C_CLOSURE_TYPE|3,a[1]=(C_word)f_284,a[2]=t21,a[3]=((C_word)li0),tmp=(C_word)a,a+=4,tmp));
t23=((C_word*)t21)[1];
f_284(t23,t19,t17);}

/* k253 in k250 in k247 */
static void C_ccall f_255(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word t4;
C_word t5;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(9,c,4))){C_save_and_reclaim((void *)f_255,2,av);}
a=C_alloc(9);
t2=C_mutate2((C_word*)lf[0]+1 /* (set! foo2a ...) */,(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_257,a[2]=((C_word)li1),tmp=(C_word)a,a+=3,tmp));
t3=C_mutate2((C_word*)lf[6]+1 /* (set! test ...) */,(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_339,a[2]=((C_word)li2),tmp=(C_word)a,a+=3,tmp));
t4=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_350,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
C_trace("foo1.scm:8: display");
{C_proc tp=(C_proc)C_fast_retrieve_proc(*((C_word*)lf[5]+1));
C_word *av2;
if(c >= 3) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(3);
}
av2[0]=*((C_word*)lf[5]+1);
av2[1]=t4;
av2[2]=lf[10];
tp(3,av2);}}

/* k250 in k247 */
static void C_ccall f_252(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(3,c,2))){C_save_and_reclaim((void *)f_252,2,av);}
a=C_alloc(3);
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_255,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);{
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=C_SCHEME_UNDEFINED;
av2[1]=t2;
C_chicken_2dsyntax_toplevel(2,av2);}}

/* k292 in for-each-loop21 in foo2a in k253 in k250 in k247 */
static void C_ccall f_294(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(0,c,2))){C_save_and_reclaim((void *)f_294,2,av);}
t2=C_slot(((C_word*)t0)[2],C_fix(1));
t3=((C_word*)((C_word*)t0)[3])[1];
f_284(t3,((C_word*)t0)[4],t2);}

/* k354 in k351 in k348 in k253 in k250 in k247 */
static void C_ccall f_356(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(3,c,2))){C_save_and_reclaim((void *)f_356,2,av);}
a=C_alloc(3);
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_359,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
C_trace("foo1.scm:11: newline");
{C_proc tp=(C_proc)C_fast_retrieve_proc(*((C_word*)lf[9]+1));
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=*((C_word*)lf[9]+1);
av2[1]=t2;
tp(2,av2);}}

/* k357 in k354 in k351 in k348 in k253 in k250 in k247 */
static void C_ccall f_359(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word t4;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(6,c,2))){C_save_and_reclaim((void *)f_359,2,av);}
a=C_alloc(6);
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_362,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
t3=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_375,a[2]=t2,tmp=(C_word)a,a+=3,tmp);
C_trace("foo1.scm:12: test");
{C_proc tp=(C_proc)C_fast_retrieve_proc(*((C_word*)lf[6]+1));
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=*((C_word*)lf[6]+1);
av2[1]=t3;
tp(2,av2);}}

/* k351 in k348 in k253 in k250 in k247 */
static void C_ccall f_353(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word t4;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(6,c,3))){C_save_and_reclaim((void *)f_353,2,av);}
a=C_alloc(6);
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_356,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
t3=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_379,a[2]=t2,tmp=(C_word)a,a+=3,tmp);
C_trace("foo1.scm:10: foo2a");
{C_proc tp=(C_proc)C_fast_retrieve_proc(*((C_word*)lf[0]+1));
C_word *av2;
if(c >= 4) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(4);
}
av2[0]=*((C_word*)lf[0]+1);
av2[1]=t3;
av2[2]=C_fix(1);
av2[3]=C_fix(2);
tp(4,av2);}}

/* k348 in k253 in k250 in k247 */
static void C_ccall f_350(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(3,c,2))){C_save_and_reclaim((void *)f_350,2,av);}
a=C_alloc(3);
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_353,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
C_trace("foo1.scm:9: newline");
{C_proc tp=(C_proc)C_fast_retrieve_proc(*((C_word*)lf[9]+1));
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=*((C_word*)lf[9]+1);
av2[1]=t2;
tp(2,av2);}}

/* toplevel */
static C_TLS int toplevel_initialized=0;
C_main_entry_point

void C_ccall C_toplevel(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word *a;
if(toplevel_initialized) {C_kontinue(t1,C_SCHEME_UNDEFINED);}
else C_toplevel_entry(C_text("toplevel"));
C_check_nursery_minimum(C_calculate_demand(3,c,2));
if(!C_demand(C_calculate_demand(3,c,2))){
C_save_and_reclaim((void*)C_toplevel,c,av);}
toplevel_initialized=1;
if(!C_demand_2(66)){
C_save(t1);
C_rereclaim2(66*sizeof(C_word),1);
t1=C_restore;}
a=C_alloc(3);
C_initialize_lf(lf,11);
lf[0]=C_h_intern(&lf[0],5,"foo2a");
lf[1]=C_decode_literal(C_heaptop,"\376B\000\000\003   ");
lf[2]=C_decode_literal(C_heaptop,"\376B\000\000\003   ");
lf[3]=C_decode_literal(C_heaptop,"\376B\000\000\003   ");
lf[4]=C_h_intern(&lf[4],8,"for-each");
lf[5]=C_h_intern(&lf[5],7,"display");
lf[6]=C_h_intern(&lf[6],4,"test");
lf[7]=C_decode_literal(C_heaptop,"\376\003\000\000\002\376\377\001\000\000\000\001\376\003\000\000\002\376\377\001\000\000\000\002\376\003\000\000\002\376\377\001\377\377\377\375\376\003\000\000\002\376\377\001\377\377\377\374\376\377\016");
lf[8]=C_h_intern(&lf[8],25,"\003sysimplicit-exit-handler");
lf[9]=C_h_intern(&lf[9],7,"newline");
lf[10]=C_decode_literal(C_heaptop,"\376\003\000\000\002\376\377\001\000\000\000\001\376\003\000\000\002\376\377\001\000\000\000\002\376\003\000\000\002\376\377\001\377\377\377\375\376\003\000\000\002\376\377\001\377\377\377\374\376\377\016");
C_register_lf2(lf,11,create_ptable());{}
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_249,a[2]=t1,tmp=(C_word)a,a+=3,tmp);{
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=C_SCHEME_UNDEFINED;
av2[1]=t2;
C_library_toplevel(2,av2);}}

/* k363 in k360 in k357 in k354 in k351 in k348 in k253 in k250 in k247 */
static void C_ccall f_365(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word t4;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(6,c,2))){C_save_and_reclaim((void *)f_365,2,av);}
a=C_alloc(6);
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_368,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
t3=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_371,a[2]=t2,tmp=(C_word)a,a+=3,tmp);
C_trace("##sys#implicit-exit-handler");
{C_proc tp=(C_proc)C_fast_retrieve_symbol_proc(lf[8]);
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=*((C_word*)lf[8]+1);
av2[1]=t3;
tp(2,av2);}}

/* k366 in k363 in k360 in k357 in k354 in k351 in k348 in k253 in k250 in k247 */
static void C_ccall f_368(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(0,c,1))){C_save_and_reclaim((void *)f_368,2,av);}
t2=((C_word*)t0)[2];{
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=t2;
av2[1]=C_SCHEME_UNDEFINED;
((C_proc)(void*)(*((C_word*)t2+1)))(2,av2);}}

/* k277 in foo2a in k253 in k250 in k247 */
static void C_ccall f_279(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(12,c,1))){C_save_and_reclaim((void *)f_279,2,av);}
a=C_alloc(12);
t2=((C_word*)t0)[2];{
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=t2;
av2[1]=C_a_i_list4(&a,4,((C_word*)t0)[3],((C_word*)t0)[4],((C_word*)t0)[5],((C_word*)t0)[6]);
((C_proc)(void*)(*((C_word*)t2+1)))(2,av2);}}

/* k360 in k357 in k354 in k351 in k348 in k253 in k250 in k247 */
static void C_ccall f_362(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(3,c,2))){C_save_and_reclaim((void *)f_362,2,av);}
a=C_alloc(3);
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_365,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);
C_trace("foo1.scm:13: newline");
{C_proc tp=(C_proc)C_fast_retrieve_proc(*((C_word*)lf[9]+1));
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=*((C_word*)lf[9]+1);
av2[1]=t2;
tp(2,av2);}}

/* k373 in k357 in k354 in k351 in k348 in k253 in k250 in k247 */
static void C_ccall f_375(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(0,c,2))){C_save_and_reclaim((void *)f_375,2,av);}
C_trace("foo1.scm:12: display");
{C_proc tp=(C_proc)C_fast_retrieve_proc(*((C_word*)lf[5]+1));
C_word *av2;
if(c >= 3) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(3);
}
av2[0]=*((C_word*)lf[5]+1);
av2[1]=((C_word*)t0)[2];
av2[2]=t1;
tp(3,av2);}}

/* test in k253 in k250 in k247 */
static void C_ccall f_339(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word *a;
if(c!=2) C_bad_argc_2(c,2,t0);
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(3,c,3))){C_save_and_reclaim((void *)f_339,2,av);}
a=C_alloc(3);
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_347,a[2]=t1,tmp=(C_word)a,a+=3,tmp);
C_trace("foo1.scm:6: foo2a");
{C_proc tp=(C_proc)C_fast_retrieve_proc(*((C_word*)lf[0]+1));
C_word *av2;
if(c >= 4) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(4);
}
av2[0]=*((C_word*)lf[0]+1);
av2[1]=t2;
av2[2]=C_fix(1);
av2[3]=C_fix(2);
tp(4,av2);}}

/* k377 in k351 in k348 in k253 in k250 in k247 */
static void C_ccall f_379(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(0,c,2))){C_save_and_reclaim((void *)f_379,2,av);}
C_trace("foo1.scm:10: display");
{C_proc tp=(C_proc)C_fast_retrieve_proc(*((C_word*)lf[5]+1));
C_word *av2;
if(c >= 3) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(3);
}
av2[0]=*((C_word*)lf[5]+1);
av2[1]=((C_word*)t0)[2];
av2[2]=t1;
tp(3,av2);}}

/* k247 */
static void C_ccall f_249(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word t3;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(3,c,2))){C_save_and_reclaim((void *)f_249,2,av);}
a=C_alloc(3);
t2=(*a=C_CLOSURE_TYPE|2,a[1]=(C_word)f_252,a[2]=((C_word*)t0)[2],tmp=(C_word)a,a+=3,tmp);{
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=C_SCHEME_UNDEFINED;
av2[1]=t2;
C_eval_toplevel(2,av2);}}

/* for-each-loop21 in foo2a in k253 in k250 in k247 */
static void C_fcall f_284(C_word t0,C_word t1,C_word t2){
C_word tmp;
C_word t3;
C_word t4;
C_word t5;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(5,0,2))){
C_save_and_reclaim_args((void *)trf_284,3,t0,t1,t2);}
a=C_alloc(5);
if(C_truep(C_i_pairp(t2))){
t3=(*a=C_CLOSURE_TYPE|4,a[1]=(C_word)f_294,a[2]=t2,a[3]=((C_word*)t0)[2],a[4]=t1,tmp=(C_word)a,a+=5,tmp);
t4=C_slot(t2,C_fix(0));
C_trace("foo1.scm:1: g22");
{C_proc tp=(C_proc)C_fast_retrieve_proc(*((C_word*)lf[5]+1));
C_word av2[3];
av2[0]=*((C_word*)lf[5]+1);
av2[1]=t3;
av2[2]=t4;
tp(3,av2);}}
else{
t3=C_SCHEME_UNDEFINED;
t4=t1;{
C_word av2[2];
av2[0]=t4;
av2[1]=t3;
((C_proc)(void*)(*((C_word*)t4+1)))(2,av2);}}}

/* k369 in k363 in k360 in k357 in k354 in k351 in k348 in k253 in k250 in k247 */
static void C_ccall f_371(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(0,c,1))){C_save_and_reclaim((void *)f_371,2,av);}
t2=t1;{
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=t2;
av2[1]=((C_word*)t0)[2];
((C_proc)C_fast_retrieve_proc(t2))(2,av2);}}

/* k345 in test in k253 in k250 in k247 */
static void C_ccall f_347(C_word c,C_word *av){
C_word tmp;
C_word t0=av[0];
C_word t1=av[1];
C_word t2;
C_word *a;
C_check_for_interrupt;
if(!C_demand(C_calculate_demand(0,c,1))){C_save_and_reclaim((void *)f_347,2,av);}
t2=((C_word*)t0)[2];{
C_word *av2;
if(c >= 2) {
  av2=av; /* Re-use our own argvector */
} else {
  av2=C_alloc(2);
}
av2[0]=t2;
av2[1]=C_i_equalp(lf[7],t1);
((C_proc)(void*)(*((C_word*)t2+1)))(2,av2);}}

#ifdef C_ENABLE_PTABLES
static C_PTABLE_ENTRY ptable[21] = {
{"f_257:foo1_2escm",(void*)f_257},
{"f_255:foo1_2escm",(void*)f_255},
{"f_252:foo1_2escm",(void*)f_252},
{"f_294:foo1_2escm",(void*)f_294},
{"f_356:foo1_2escm",(void*)f_356},
{"f_359:foo1_2escm",(void*)f_359},
{"f_353:foo1_2escm",(void*)f_353},
{"f_350:foo1_2escm",(void*)f_350},
{"toplevel:foo1_2escm",(void*)C_toplevel},
{"f_365:foo1_2escm",(void*)f_365},
{"f_368:foo1_2escm",(void*)f_368},
{"f_279:foo1_2escm",(void*)f_279},
{"f_362:foo1_2escm",(void*)f_362},
{"f_375:foo1_2escm",(void*)f_375},
{"f_339:foo1_2escm",(void*)f_339},
{"f_379:foo1_2escm",(void*)f_379},
{"f_249:foo1_2escm",(void*)f_249},
{"f_284:foo1_2escm",(void*)f_284},
{"f_371:foo1_2escm",(void*)f_371},
{"f_347:foo1_2escm",(void*)f_347},
{NULL,NULL}};
#endif

static C_PTABLE_ENTRY *create_ptable(void){
#ifdef C_ENABLE_PTABLES
return ptable;
#else
return NULL;
#endif
}

/*
S|applied compiler syntax:
S|  for-each		1
o|eliminated procedure checks: 2 
o|safe globals: (test foo2a) 
o|inlining procedure: k286 
o|inlining procedure: k286 
o|replaced variables: 13 
o|removed binding forms: 17 
o|removed binding forms: 15 
o|simplifications: ((if . 4) (##core#call . 17)) 
o|  call simplifications:
o|    equal?
o|    car	2
o|    null?	4
o|    cdr	2
o|    integer?	2
o|    ##sys#check-list
o|    pair?
o|    ##sys#slot	2
o|    list	2
o|contracted procedure: k332 
o|contracted procedure: k259 
o|contracted procedure: k326 
o|contracted procedure: k262 
o|contracted procedure: k320 
o|contracted procedure: k265 
o|contracted procedure: k314 
o|contracted procedure: k268 
o|contracted procedure: k307 
o|contracted procedure: k311 
o|contracted procedure: k271 
o|contracted procedure: k274 
o|contracted procedure: k289 
o|contracted procedure: k299 
o|contracted procedure: k303 
o|simplifications: ((let . 1)) 
o|removed binding forms: 15 
o|replaced variables: 11 
o|removed binding forms: 4 
o|customizable procedures: (for-each-loop2131) 
o|calls to known targets: 2 
o|fast box initializations: 1 
*/
/* end of file */