pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   #include "global.h" - RCSID("$Id: docode.c,v 1.9 1997/01/29 00:31:12 hubbe Exp $"); + RCSID("$Id: docode.c,v 1.10 1997/01/30 03:51:32 hubbe Exp $");   #include "las.h"   #include "program.h"   #include "language.h"   #include "pike_types.h"   #include "stralloc.h"   #include "interpret.h"   #include "constants.h"   #include "array.h"   #include "macros.h"   #include "error.h"
pike.git/src/docode.c:952:    }    }    return tmp1;       case F_INDEX:    if(flags & DO_LVALUE)    {    tmp1=do_docode(CAR(n), 0);    if(do_docode(CDR(n),0) != 1)    fatal("Internal compiler error, please report this (1)."); -  if(CDR(n)->token != F_CONSTANT) emit2(F_CLEAR_STRING_SUBTYPE); +  if(CDR(n)->token != F_CONSTANT && +  match_types(CDR(n)->type, string_type_string)) +  emit2(F_CLEAR_STRING_SUBTYPE);    return 2;    }else{    tmp1=do_docode(CAR(n), DO_NOT_COPY);    if(do_docode(CDR(n),DO_NOT_COPY) != 1)    fatal("Internal compiler error, please report this (1).");    emit2(F_INDEX);    if(!(flags & DO_NOT_COPY))    {    while(n && (n->token==F_INDEX || n->token==F_ARROW)) n=CAR(n);    if(n->token==F_CONSTANT && !(n->node_info & OPT_EXTERNAL_DEPEND))