pike.git / src / las.c

version» Context lines:

pike.git/src/las.c:914:    break;       case F_SSCANF:    if(!b || count_args(b) == 0) break;    res->node_info |= OPT_ASSIGNMENT;    break;       case F_APPEND_ARRAY:    case F_MULTI_ASSIGN:    case F_ASSIGN: +  case F_ASSIGN_SELF:    res->node_info |= OPT_ASSIGNMENT;    if (a) {    res->tree_info |= a->tree_info;    }    if (b) {    res->tree_info |= b->tree_info;    }    break;       case F_INC:
pike.git/src/las.c:2180:    fputs("trampoline<unknown identifier>", stderr);    }    break;       case F_ASSIGN:    low_print_tree(_CDR(foo),1);    fputc('=', stderr);    low_print_tree(_CAR(foo),0);    break;    +  case F_ASSIGN_SELF: +  low_print_tree(_CDR(foo),1); +  fputc(':', stderr); +  fputc('=', stderr); +  low_print_tree(_CAR(foo),0); +  break; +     case F_POP_VALUE:    fputc('{', stderr);    low_print_tree(_CAR(foo), 0);    fputc('}', stderr);    break;       case F_CAST:    {    dynamic_buffer save_buf;    char *s;
pike.git/src/las.c:2596: Inside #if defined(PARANOID_INDEXING)
   case F_INDEX:   #ifdef PARANOID_INDEXING    /* Be paranoid, and assume aliasing. */    p->ext_flags = VAR_USED;   #endif /* PARANOID_INDEXING */    if(car_is_node(n)) find_used_variables(CAR(n),p,noblock,0);    if(cdr_is_node(n)) find_used_variables(CDR(n),p,noblock,0);    break;       case F_ASSIGN: +  case F_ASSIGN_SELF:    find_used_variables(CAR(n),p,noblock,0);    find_used_variables(CDR(n),p,noblock,1);    break;       case '?':    find_used_variables(CAR(n),p,noblock,0);    a=copy_vars(p);    find_used_variables(CADR(n),a,noblock,0);    find_used_variables(CDDR(n),p,noblock,0);    do_and_vars(p, a);
pike.git/src/las.c:2720:    break;       case F_INC:    case F_DEC:    case F_POST_INC:    case F_POST_DEC:    find_written_vars(CAR(n), p, 1);    break;       case F_ASSIGN: +  case F_ASSIGN_SELF:    case F_MULTI_ASSIGN:    find_written_vars(CAR(n), p, 0);    find_written_vars(CDR(n), p, 1);    break;       case F_APPEND_ARRAY:    find_written_vars(CAR(n), p, 1);    find_written_vars(CDR(n), p, 0);    break;   
pike.git/src/las.c:3202:    fix_type_field(CDR(n));    type_stack_mark();    push_finished_type(CDR(n)->type);    push_type(T_ARRAY);    n->type = and_pike_types(CAR(n)->type, tmp = pop_unfinished_type());    free_type(tmp);    }    break;       case F_ASSIGN: +  case F_ASSIGN_SELF:    if (!CAR(n) || (CAR(n)->type == void_type_string)) {    yyerror("Assigning a void expression.");    copy_pike_type(n->type, void_type_string);    } else if (!CDR(n)) {    copy_pike_type(n->type, CAR(n)->type);    } else {    /* Ensure that the type-fields are up to date. */    fix_type_field(CAR(n));    fix_type_field(CDR(n));   #if 0
pike.git/src/las.c:3945: Inside #if defined(SHARED_NODES) && 0
   const unsigned char *break_u,    const unsigned char *catch_u)   {    if (!n)    return;       fatal_check_c_stack(16384);       switch(n->token) {    case F_ASSIGN: +  case F_ASSIGN_SELF:    if ((CDR(n)->token == F_LOCAL) && (!CDR(n)->u.integer.b)) {    usage[CDR(n)->u.integer.a] = 0;    } else if (CDR(n)->token == F_ARRAY_LVALUE) {    find_usage(CDR(n), usage, switch_u, cont_u, break_u, catch_u);    }    find_usage(CAR(n), usage, switch_u, cont_u, break_u, catch_u);    return;       case F_SSCANF:    {
pike.git/src/las.c:4213: Inside #if defined(SHARED_NODES) && 0
   const unsigned char *catch_u)   {    node *car, *cdr;       if (!n)    return NULL;       switch(n->token) {    /* FIXME: Does not support F_LOOP yet. */    case F_ASSIGN: +  case F_ASSIGN_SELF:    if ((CDR(n)->token == F_LOCAL) && (!CDR(n)->u.integer.b)) {    /* Assignment of local variable */    if (!(usage[CDR(n)->u.integer.a] & 1)) {    /* Value isn't used. */    struct pike_type *ref_type;    MAKE_CONSTANT_TYPE(ref_type, tOr(tComplex, tString));    if (!match_types(CDR(n)->type, ref_type)) {    /* The variable doesn't hold a refcounted value. */    free_type(ref_type);    return low_localopt(CAR(n), usage, switch_u, cont_u,
pike.git/src/las.c:4236: Inside #if defined(SHARED_NODES) && 0
   }    usage[CDR(n)->u.integer.a] = 0;    cdr = CDR(n);    ADD_NODE_REF(cdr);    } else if (CDR(n)->token == F_ARRAY_LVALUE) {    cdr = low_localopt(CDR(n), usage, switch_u, cont_u, break_u, catch_u);    } else {    cdr = CDR(n);    ADD_NODE_REF(cdr);    } -  return mknode(F_ASSIGN, low_localopt(CAR(n), usage, switch_u, cont_u, +  return mknode(n->token, low_localopt(CAR(n), usage, switch_u, cont_u,    break_u, catch_u), cdr);       case F_SSCANF:    {    int i;       /* catch_usage is restored if sscanf throws an error. */    for (i=0; i < MAX_LOCAL; i++) {    usage[i] |= catch_u[i];    }