case TYPE_STRING:
op = INSTR_STORE_S;
break;
+ case TYPE_FIELD:
+ op = INSTR_STORE_FLD;
+ break;
#if 0
case TYPE_INTEGER:
if (what->vtype == TYPE_INTEGER)
{
int op = 0;
int vtype;
- if (target->vtype == TYPE_VARIANT)
- vtype = what->vtype;
- else
- vtype = target->vtype;
- if (vtype != what->vtype)
- {
- /* Cannot implicitly convert when storing through a pointer */
+ if (target->vtype != TYPE_POINTER)
return false;
- }
+
+ /* storing using pointer - target is a pointer, type must be
+ * inferred from source
+ */
+ vtype = what->vtype;
switch (vtype) {
case TYPE_FLOAT:
case TYPE_STRING:
op = INSTR_STOREP_S;
break;
+ case TYPE_FIELD:
+ op = INSTR_STOREP_FLD;
+ break;
#if 0
case TYPE_INTEGER:
op = INSTR_STOREP_I;