diff -aur bc.orig/bc/bcdefs.h bc.new/bc/bcdefs.h --- bc.orig/bc/bcdefs.h 2007-05-29 16:53:47.000000000 +0400 +++ bc.new/bc/bcdefs.h 2007-05-29 17:02:12.000000000 +0400 @@ -100,8 +100,8 @@ /* Code addresses. */ typedef struct { - int pc_func; - int pc_addr; + long pc_func; + long pc_addr; } program_counter; diff -aur bc.orig/bc/load.c bc.new/bc/load.c --- bc.orig/bc/load.c 2007-05-29 16:53:47.000000000 +0400 +++ bc.new/bc/load.c 2007-05-29 17:02:11.000000000 +0400 @@ -54,7 +54,7 @@ addbyte (byte) char byte; { - int pc; + long pc; bc_function *f; char *new_body; @@ -87,7 +87,8 @@ long lab; { bc_label_group *temp; - int group, offset, func; + int group, offset; + long func; /* Get things ready. */ group = lab >> BC_LABEL_LOG; @@ -245,8 +246,8 @@ #if DEBUG > 2 printf ("var parameter number %d\n", ap_name); #endif - functions[(int)func].f_params = - nextarg (functions[(int)func].f_params, ap_name, + functions[(long)func].f_params = + nextarg (functions[(long)func].f_params, ap_name, TRUE); } else @@ -255,8 +256,8 @@ #if DEBUG > 2 printf ("parameter number %d\n", ap_name); #endif - functions[(int)func].f_params = - nextarg (functions[(int)func].f_params, ap_name, + functions[(long)func].f_params = + nextarg (functions[(long)func].f_params, ap_name, FALSE); } } @@ -269,8 +270,8 @@ #if DEBUG > 2 printf ("auto number %d\n", ap_name); #endif - functions[(int)func].f_autos = - nextarg (functions[(int)func].f_autos, ap_name, FALSE); + functions[(long)func].f_autos = + nextarg (functions[(long)func].f_autos, ap_name, FALSE); } save_adr = load_adr; load_adr.pc_func = func;