diff options
author | Sergei Golubchik <sergii@pisem.net> | 2012-04-05 23:07:18 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2012-04-05 23:07:18 +0200 |
commit | a3073ecd96a829aaff87c6386e0766fc1440922b (patch) | |
tree | d91e26efc46ab64ee6cb8de880eac060cded0213 /sql/sql_yacc.yy | |
parent | 1a48919036a7746a15ff6bd19cb52c25fc6a57c1 (diff) | |
parent | cbd52a42ee9b93675e5cdaa043df878c423b6571 (diff) | |
download | mariadb-git-a3073ecd96a829aaff87c6386e0766fc1440922b.tar.gz |
merge
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 084314ff23f..dd6127f8530 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -2578,9 +2578,15 @@ sp_decl: sp_instr_hpush_jump *i= new sp_instr_hpush_jump(sp->instructions(), ctx, $2, ctx->current_var_count()); - if (i == NULL || - sp->add_instr(i) || - sp->push_backpatch(i, ctx->push_label((char *)"", 0))) + if (i == NULL || sp->add_instr(i)) + MYSQL_YYABORT; + + /* For continue handlers, mark end of handler scope. */ + if ($2 == SP_HANDLER_CONTINUE && + sp->push_backpatch(i, ctx->last_label())) + MYSQL_YYABORT; + + if (sp->push_backpatch(i, ctx->push_label(empty_c_string, 0))) MYSQL_YYABORT; } sp_hcond_list sp_proc_stmt |