These are both warnings regarding using a STRING * to refer to a BUCKET *.
"key.c", line 275: warning: argument #2 is incompatible with prototype: prototype: pointer to struct _bucket {struct _key_pair {..} pair, pointer to struct {..} key, pointer to struct _bucket {..} next} : "key.c", line 65 argument : pointer to struct {pointer to void bufstart, unsigned long long buflen, unsigned long long flags, unsigned long long bufused, unsigned long long strlen, pointer to const struct {..} encoding, pointer to const struct {..} type, long long language} "key.c", line 339: warning: assignment type mismatch: pointer to struct {pointer to void bufstart, unsigned long long buflen, unsigned long long flags, unsigned long long bufused, unsigned long long strlen, pointer to const struct {..} encoding, pointer to const struct {..} type, long long language} "=" pointer to struct _bucket {struct _key_pair {..} pair, pointer to struct {..} key, pointer to struct _bucket {..} next} Here's the patch: Index: key.c =================================================================== RCS file: /home/perlcvs/parrot/key.c,v retrieving revision 1.10 diff -u -r1.10 key.c --- key.c 8 Jan 2002 20:05:18 -0000 1.10 +++ key.c 8 Jan 2002 22:14:34 -0000 @@ -272,7 +272,7 @@ if(idx != NULL) { INTVAL hash = key_hash(interpreter,idx); hash = hash % NUM_BUCKETS; - pair = find_bucket(interpreter,key->keys[hash].cache.struct_val,idx); + pair = find_bucket(interpreter,(BUCKET *)key->keys[hash].cache.struct_val,idx); if(pair == NULL) { fprintf(stderr,"*** key_element_value_s pair returning a null key\n"); } @@ -336,7 +336,7 @@ } else { } - key->keys[hash].cache.struct_val = bucket; + key->keys[hash].cache.struct_val = (STRING *)bucket; key->keys[hash].type = enum_key_bucket; } else { - D <[EMAIL PROTECTED]>