two small memory leak fixes on failure paths

This commit is contained in:
David Carlier 2017-05-23 21:56:03 +01:00
parent 167207e98c
commit 8538658e83
2 changed files with 2 additions and 0 deletions

1
ir.cpp
View file

@ -1449,6 +1449,7 @@ ir_instr* ir_block_create_call(ir_block *self, lex_ctx_t ctx, const char *label,
!ir_instr_op(in, 1, func, false)) !ir_instr_op(in, 1, func, false))
{ {
delete in; delete in;
delete out;
return nullptr; return nullptr;
} }
vec_push(self->m_instr, in); vec_push(self->m_instr, in);

View file

@ -3127,6 +3127,7 @@ static bool parse_switch_go(parser_t *parser, ast_block *block, ast_expression *
} }
if (!OPTS_FLAG(RELAXED_SWITCH)) { if (!OPTS_FLAG(RELAXED_SWITCH)) {
if (!ast_istype(swcase.m_value, ast_value)) { /* || ((ast_value*)swcase.m_value)->m_cvq != CV_CONST) { */ if (!ast_istype(swcase.m_value, ast_value)) { /* || ((ast_value*)swcase.m_value)->m_cvq != CV_CONST) { */
delete switchnode;
parseerror(parser, "case on non-constant values need to be explicitly enabled via -frelaxed-switch"); parseerror(parser, "case on non-constant values need to be explicitly enabled via -frelaxed-switch");
ast_unref(operand); ast_unref(operand);
return false; return false;