diff --git a/src/opcodes.c b/src/opcodes.c index 96bfca6693759c90119daa4b1f6df289edcc0f86..b349a35aa91640c575591095ddacf83301574bf8 100644 --- a/src/opcodes.c +++ b/src/opcodes.c @@ -26,7 +26,7 @@ #include "bignum.h" #include "operators.h" -RCSID("$Id: opcodes.c,v 1.84 2000/08/13 19:34:34 grubba Exp $"); +RCSID("$Id: opcodes.c,v 1.85 2000/08/14 20:29:14 grubba Exp $"); void index_no_free(struct svalue *to,struct svalue *what,struct svalue *ind) { @@ -666,13 +666,13 @@ struct sscanf_set #define MKREADSET(SIZE) \ -static int PIKE_CONCAT(read_set,SIZE) ( \ +static ptrdiff_t PIKE_CONCAT(read_set,SIZE) ( \ PIKE_CONCAT(p_wchar,SIZE) *match, \ - int cnt, \ + ptrdiff_t cnt, \ struct sscanf_set *set, \ - int match_len) \ + ptrdiff_t match_len) \ { \ - unsigned long e,last=0; \ + size_t e, last = 0; \ CHAROPT( int set_size=0; ) \ \ if(cnt>=match_len) \ @@ -717,15 +717,15 @@ static int PIKE_CONCAT(read_set,SIZE) ( \ error("Error in sscanf format string.\n"); \ \ CHAROPT( \ - if(last < (unsigned long)sizeof(set->c)) \ + if(last < (size_t)sizeof(set->c)) \ { \ - if(match[cnt] < (unsigned long)sizeof(set->c)) \ + if(match[cnt] < (size_t)sizeof(set->c)) \ { \ ) \ for(e=last;e<=match[cnt];e++) set->c[e]=1; \ CHAROPT( \ }else{ \ - for(e=last;e<(unsigned long)sizeof(set->c);e++) \ + for(e=last;e<(size_t)sizeof(set->c);e++) \ set->c[e]=1; \ \ check_stack(2); \ @@ -742,12 +742,12 @@ CHAROPT( \ continue; \ } \ last=match[cnt]; \ - if(last < (unsigned long)sizeof(set->c)) \ + if(last < (size_t)sizeof(set->c)) \ set->c[last]=1; \ CHAROPT( \ else{ \ if(set_size && \ - ((unsigned long)sp[-1].u.integer) == last-1) \ + ((size_t)sp[-1].u.integer) == last-1) \ { \ sp[-1].u.integer++; \ }else{ \ @@ -766,7 +766,7 @@ CHAROPT( \ INT32 *order; \ set->a=aggregate_array(set_size*2); \ order=get_switch_order(set->a); \ - for(e=0;e<(unsigned long)set->a->size;e+=2) \ + for(e=0;e<(size_t)set->a->size;e+=2) \ { \ if(order[e]+1 != order[e+1]) \ { \ @@ -940,7 +940,7 @@ static INLINE FLOAT_TYPE low_parse_IEEE_float(char *b, int sz) ((char *)&d)[5] = *((INPUT)+5); \ ((char *)&d)[6] = *((INPUT)+6); \ ((char *)&d)[7] = *((INPUT)+7); \ - (SVAL).u.float_number = (float)d; \ + (SVAL).u.float_number = (FLOAT_TYPE)d; \ } while(0) #else #ifdef DOUBLE_IS_IEEE_LITTLE @@ -955,7 +955,7 @@ static INLINE FLOAT_TYPE low_parse_IEEE_float(char *b, int sz) ((char *)&d)[2] = *((INPUT)+5); \ ((char *)&d)[1] = *((INPUT)+6); \ ((char *)&d)[0] = *((INPUT)+7); \ - (SVAL).u.float_number = (float)d; \ + (SVAL).u.float_number = (FLOAT_TYPE)d; \ } while(0) #else #define EXTRACT_DOUBLE(SVAL, INPUT, SHIFT) \ @@ -985,8 +985,8 @@ static INT32 PIKE_CONCAT4(very_low_sscanf_,INPUT_SHIFT,_,MATCH_SHIFT)( \ { \ struct svalue sval; \ INT32 matches, arg; \ - ptrdiff_t cnt, eye, e; \ - int no_assign = 0, field_length = 0, minus_flag = 0; \ + ptrdiff_t cnt, eye, e, field_length = 0; \ + int no_assign = 0, minus_flag = 0; \ struct sscanf_set set; \ struct svalue *argp; \ \ diff --git a/src/program.c b/src/program.c index 10c08c376f7b27c534e04416bf4e1b596b0dfdd2..b882b72018c33c4a01b1f7f74d618c0185ea68c7 100644 --- a/src/program.c +++ b/src/program.c @@ -5,7 +5,7 @@ \*/ /**/ #include "global.h" -RCSID("$Id: program.c,v 1.258 2000/08/10 17:51:34 grubba Exp $"); +RCSID("$Id: program.c,v 1.259 2000/08/14 20:19:20 grubba Exp $"); #include "program.h" #include "object.h" #include "dynamic_buffer.h" @@ -517,8 +517,10 @@ void optimize_program(struct program *p) int program_function_index_compare(const void *a,const void *b) { return - my_order_strcmp(ID_FROM_INT(Pike_compiler->new_program, *(unsigned short *)a)->name, - ID_FROM_INT(Pike_compiler->new_program, *(unsigned short *)b)->name); + DO_NOT_WARN((int)my_order_strcmp(ID_FROM_INT(Pike_compiler->new_program, + *(unsigned short *)a)->name, + ID_FROM_INT(Pike_compiler->new_program, + *(unsigned short *)b)->name)); } #ifdef PIKE_DEBUG @@ -1382,7 +1384,8 @@ PMOD_EXPORT struct program *debug_end_program(void) * Allocate needed for this program in the object structure. * An offset to the data is returned. */ -PMOD_EXPORT size_t low_add_storage(size_t size, size_t alignment, int modulo_orig) +PMOD_EXPORT size_t low_add_storage(size_t size, size_t alignment, + ptrdiff_t modulo_orig) { ptrdiff_t offset; ptrdiff_t modulo; @@ -1420,7 +1423,8 @@ PMOD_EXPORT size_t low_add_storage(size_t size, size_t alignment, int modulo_ori } if(Pike_compiler->new_program->alignment_needed<alignment) - Pike_compiler->new_program->alignment_needed=alignment; + Pike_compiler->new_program->alignment_needed = + DO_NOT_WARN((unsigned INT8)alignment); #ifdef PIKE_DEBUG if(offset < Pike_compiler->new_program->storage_needed) @@ -1437,7 +1441,7 @@ PMOD_EXPORT size_t low_add_storage(size_t size, size_t alignment, int modulo_ori Pike_compiler->new_program->storage_needed = offset + size; - return (SIZE_T) offset; + return (size_t) offset; } diff --git a/src/program.h b/src/program.h index 6b812b6f8f8144fa16d2c6605ad93b00f4f6f2ce..982412fb87aec966c0ab249be17874bea1301a42 100644 --- a/src/program.h +++ b/src/program.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: program.h,v 1.101 2000/08/14 20:09:58 grubba Exp $ + * $Id: program.h,v 1.102 2000/08/14 20:19:20 grubba Exp $ */ #ifndef PROGRAM_H #define PROGRAM_H @@ -201,7 +201,7 @@ struct inherit INT16 identifier_level; INT16 parent_identifier; INT16 parent_offset; - INT32 storage_offset; + ptrdiff_t storage_offset; struct object *parent; struct program *prog; struct pike_string *name; @@ -264,7 +264,7 @@ struct program * the first inherit[0].storage_offset bytes are not used and are * subtracted when inheriting. */ - INT32 storage_needed; /* storage needed in the object struct */ + ptrdiff_t storage_needed; /* storage needed in the object struct */ INT16 flags; /* PROGRAM_* */ unsigned INT8 alignment_needed; struct timeval timestamp; @@ -352,7 +352,8 @@ int sizeof_variable(int run_time_type); void check_program(struct program *p); struct program *end_first_pass(int finish); PMOD_EXPORT struct program *debug_end_program(void); -PMOD_EXPORT size_t low_add_storage(size_t size, size_t alignment, int modulo_orig); +PMOD_EXPORT size_t low_add_storage(size_t size, size_t alignment, + ptrdiff_t modulo_orig); PMOD_EXPORT void set_init_callback(void (*init)(struct object *)); PMOD_EXPORT void set_exit_callback(void (*exit)(struct object *)); PMOD_EXPORT void set_gc_recurse_callback(void (*m)(struct object *));