Branch: Tag:

2001-04-23

2001-04-23 21:30:04 by Marcus Comstedt <marcus@mc.pp.se>

Bugfix: Removed incorrect assumptions about the evaluation order of C...

Rev: src/pike_types.c:1.179

5:   \*/   /**/   #include "global.h" - RCSID("$Id: pike_types.c,v 1.178 2001/04/18 17:58:12 grubba Exp $"); + RCSID("$Id: pike_types.c,v 1.179 2001/04/23 21:30:04 marcus Exp $");   #include <ctype.h>   #include "svalue.h"   #include "pike_types.h"
4220:   static struct pike_type *debug_low_make_function_type(unsigned char *type_string,    unsigned char **cont)   { +  struct pike_type *tmp; +     if (*type_string == T_MANY) { -  return mk_type(T_MANY, low_make_pike_type(type_string+1, cont), +  tmp = low_make_pike_type(type_string+1, cont); +  return mk_type(T_MANY, tmp,    low_make_pike_type(*cont, cont), PT_COPY_BOTH);    } -  return mk_type(T_FUNCTION, low_make_pike_type(type_string, cont), +  tmp = low_make_pike_type(type_string, cont); +  return mk_type(T_FUNCTION, tmp,    low_make_function_type(*cont, cont), PT_COPY_BOTH);   }   
4232:    unsigned char **cont)   {    unsigned INT32 type; +  struct pike_type *tmp;       switch(type = *type_string) {    case T_SCOPE:
4249:    case T_MAPPING:    case PIKE_T_RING:    /* Order dependant */ -  return mk_type(type, low_make_pike_type(type_string+1, cont), +  tmp = low_make_pike_type(type_string+1, cont); +  return mk_type(type, tmp,    low_make_pike_type(*cont, cont), PT_COPY_BOTH);    case T_OR:    case T_AND:    /* Order independant */    /* FIXME: */ -  return mk_type(type, low_make_pike_type(type_string+1, cont), +  tmp = low_make_pike_type(type_string+1, cont); +  return mk_type(type, tmp,    low_make_pike_type(*cont, cont), PT_COPY_BOTH);    case T_ARRAY:    case T_MULTISET: