pike.git / src / las.c

version» Context lines:

pike.git/src/las.c:1490:    case F_UNDEFINED:    if(Pike_compiler->compiler_pass == COMPILER_PASS_LAST) {    /* FIXME: Ought to have the name of the identifier in the message. */    yyerror("Expected constant, got undefined identifier.");    }    push_int(0);    return;       default:    { -  if(is_const(n)) +  int warn = 0; +  if(is_const(n) || (warn = (TEST_COMPAT(8, 0) && is_const_80(n))))    { -  ptrdiff_t args=eval_low(n,1); +  ptrdiff_t args; +  if (warn) { +  yywarning("Constant expression has external dependencies."); +  } +  args = eval_low(n,1);    if(args==1) return;       if(args!=-1)    {    if(!args)    {    yyerror("Expected constant, got void expression.");    }else{    yyerror("Possible internal error!!!");    pop_n_elems(args-1);
pike.git/src/las.c:2072:    OPT_EXTERNAL_DEPEND |    OPT_NOT_CONST |    OPT_ASSIGNMENT |    OPT_CASE |    OPT_CONTINUE |    OPT_BREAK |    OPT_RETURN    ));   }    + int is_const_80(node *n) + { +  if(!n) return 1; +  return !(n->tree_info & (OPT_SIDE_EFFECT | +  OPT_NOT_CONST | +  OPT_ASSIGNMENT | +  OPT_CASE | +  OPT_CONTINUE | +  OPT_BREAK | +  OPT_RETURN +  )); + } +    int node_is_tossable(node *n)   {    if (!(n->tree_info & (OPT_SIDE_EFFECT |    OPT_ASSIGNMENT |    OPT_CASE |    OPT_CONTINUE |    OPT_BREAK |    OPT_RETURN    ))) {    ptrdiff_t args;