parser: fix uninitialized args
authorMichael Wallner <mike@php.net>
Thu, 2 Feb 2017 14:45:04 +0000 (15:45 +0100)
committerMichael Wallner <mike@php.net>
Thu, 2 Feb 2017 14:59:10 +0000 (15:59 +0100)
src/parser_def.h
src/parser_proc.y

index 5d6a84a729e1a7f1a5ae542279b9bef3ff6066db..1910ebfe9f6e6dab828ecd1d59e9075d2d9eee1e 100644 (file)
@@ -880,12 +880,17 @@ PARSE_TYPED(decl_arg, arg_,
 /*
  * decl_args: <empty>
  */
 /*
  * decl_args: <empty>
  */
-PASS(decl_args, )
+PARSE_TYPED(decl_args, args, ) {
+       args = NULL;
+}
 
 /*
  * decl_args: VOID
  */
 
 /*
  * decl_args: VOID
  */
-PASS(decl_args, VOID)
+PARSE_TYPED(decl_args, args,
+               TOKEN(VOID)) {
+       args = NULL;
+}
 
 /*
  * decl_args: decl_arg
 
 /*
  * decl_args: decl_arg
@@ -1664,7 +1669,9 @@ PARSE_TYPED(let_exps, exps,
 /*
  * callback_arg_list: <empty>
  */
 /*
  * callback_arg_list: <empty>
  */
-PASS(callback_arg_list, )
+PARSE_TYPED(callback_arg_list, args, ) {
+       args = NULL;
+}
 
 /*
  * callback_arg_list: callback_args
 
 /*
  * callback_arg_list: callback_args
index 15407e0df03bbc1bc5281a1b9978eaf48e493c41..aa17e4c23b5ef5d6498d6b47007833e51ae3bdeb 100644 (file)
@@ -500,8 +500,12 @@ decl_arg(arg_) ::= CONST VOID(T) pointers(p) NAME(N). {
  arg_->var->token = N;
  arg_->token = N;
 }
  arg_->var->token = N;
  arg_->token = N;
 }
-decl_args ::= .
-decl_args ::= VOID.
+decl_args(args) ::= . {
+ args = NULL;
+}
+decl_args(args) ::= VOID. {
+ args = NULL;
+}
 decl_args(args) ::= decl_arg(arg). {
  args = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free),
    &arg);
 decl_args(args) ::= decl_arg(arg). {
  args = psi_plist_add(psi_plist_init((psi_plist_dtor) psi_decl_arg_free),
    &arg);
@@ -820,7 +824,9 @@ let_exps(exps) ::= let_exp(exp). {
 let_exps(exps) ::= let_exps(exps_) COMMA let_exp(exp). {
  exps = psi_plist_add(exps_, &exp);
 }
 let_exps(exps) ::= let_exps(exps_) COMMA let_exp(exp). {
  exps = psi_plist_add(exps_, &exp);
 }
-callback_arg_list ::= .
+callback_arg_list(args) ::= . {
+ args = NULL;
+}
 callback_arg_list(args) ::= callback_args(args_). {
  args = args_;
 }
 callback_arg_list(args) ::= callback_args(args_). {
  args = args_;
 }