Branch: Tag:

2021-02-22

2021-02-22 11:57:35 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler [Typechecker]: Fix the initializer check for variables.

1834:    {    struct pike_type *type;    node *n; +     push_finished_type(Pike_compiler->compiler_frame->current_type); -  +  if (!TEST_COMPAT(8,0) && +  (THIS_COMPILATION->lex.pragmas & ID_STRICT_TYPES) && +  (Pike_compiler->compiler_frame->current_type->type != PIKE_T_AUTO)) { +  if (!pike_types_le(zero_type_string, +  Pike_compiler->compiler_frame->current_type)) { +  if (Pike_compiler->compiler_pass == COMPILER_PASS_LAST) { +  ref_push_string($1->u.sval.u.string); +  yytype_report(REPORT_WARNING, NULL, 0, zero_type_string, +  NULL, 0, Pike_compiler->compiler_frame->current_type, +  1, "Type does not contain zero for variable without " +  "initializer %s. Type adjusted."); +  } +  push_type(PIKE_T_ZERO); +  push_type(T_OR); +  } +  }    n = Pike_compiler->current_attributes;    while(n) {    push_type_attribute(CDR(n)->u.sval.u.string);
1851:    {    struct pike_type *type;    node *n; +     push_finished_type(Pike_compiler->compiler_frame->current_type); -  if (!TEST_COMPAT(8,0) && -  (THIS_COMPILATION->lex.pragmas & ID_STRICT_TYPES) && -  (Pike_compiler->compiler_frame->current_type->type != PIKE_T_AUTO)) { -  if (!pike_types_le(zero_type_string, -  Pike_compiler->compiler_frame->current_type)) { -  if (Pike_compiler->compiler_pass == COMPILER_PASS_LAST) { -  ref_push_string($1->u.sval.u.string); -  yytype_report(REPORT_WARNING, NULL, 0, zero_type_string, -  NULL, 0, Pike_compiler->compiler_frame->current_type, -  1, "Type does not contain zero for variable without " -  "initializer %s. Type adjusted."); -  } -  push_type(PIKE_T_ZERO); -  push_type(T_OR); -  } -  } +     n = Pike_compiler->current_attributes;    while(n) {    push_type_attribute(CDR(n)->u.sval.u.string);