don't generate storep for vector field unless it's an ent field
authorDale Weiler <weilercdale@gmail.com>
Sun, 26 Nov 2017 22:47:27 +0000 (17:47 -0500)
committerDale Weiler <weilercdale@gmail.com>
Sun, 26 Nov 2017 22:47:27 +0000 (17:47 -0500)
parser.cpp

index 0560849..63e49d0 100644 (file)
@@ -296,7 +296,11 @@ static bool rotate_entfield_array_index_nodes(ast_expression **out)
 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)) {