static int store_op_for(ast_expression* expr)
{
if (OPTS_FLAG(ADJUST_VECTOR_FIELDS) && expr->m_vtype == TYPE_FIELD && expr->m_next->m_vtype == TYPE_VECTOR) {
- return type_storep_instr[TYPE_VECTOR];
+ if (ast_istype(expr, ast_entfield)) {
+ return type_storep_instr[TYPE_VECTOR];
+ } else {
+ return type_store_instr[TYPE_VECTOR];
+ }
}
if (ast_istype(expr, ast_member) && ast_istype(((ast_member*)expr)->m_owner, ast_entfield)) {
}
if (!OPTS_FLAG(RELAXED_SWITCH)) {
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");
ast_unref(operand);
return false;