d3dcompiler: Store location information in constants, variable dereferences and constructors.
This commit is contained in:
parent
55f9e9ff4f
commit
be350b0bb3
|
@ -799,6 +799,7 @@ primary_expr: C_FLOAT
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
c->node.type = HLSL_IR_CONSTANT;
|
c->node.type = HLSL_IR_CONSTANT;
|
||||||
|
set_location(&c->node.loc, &yylloc);
|
||||||
c->node.data_type = new_hlsl_type("float", HLSL_CLASS_SCALAR, HLSL_TYPE_FLOAT, 1, 1);
|
c->node.data_type = new_hlsl_type("float", HLSL_CLASS_SCALAR, HLSL_TYPE_FLOAT, 1, 1);
|
||||||
c->v.value.f[0] = $1;
|
c->v.value.f[0] = $1;
|
||||||
$$ = &c->node;
|
$$ = &c->node;
|
||||||
|
@ -812,6 +813,7 @@ primary_expr: C_FLOAT
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
c->node.type = HLSL_IR_CONSTANT;
|
c->node.type = HLSL_IR_CONSTANT;
|
||||||
|
set_location(&c->node.loc, &yylloc);
|
||||||
c->node.data_type = new_hlsl_type("int", HLSL_CLASS_SCALAR, HLSL_TYPE_INT, 1, 1);
|
c->node.data_type = new_hlsl_type("int", HLSL_CLASS_SCALAR, HLSL_TYPE_INT, 1, 1);
|
||||||
c->v.value.i[0] = $1;
|
c->v.value.i[0] = $1;
|
||||||
$$ = &c->node;
|
$$ = &c->node;
|
||||||
|
@ -825,6 +827,7 @@ primary_expr: C_FLOAT
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
c->node.type = HLSL_IR_CONSTANT;
|
c->node.type = HLSL_IR_CONSTANT;
|
||||||
|
set_location(&c->node.loc, &yylloc);
|
||||||
c->node.data_type = new_hlsl_type("bool", HLSL_CLASS_SCALAR, HLSL_TYPE_BOOL, 1, 1);
|
c->node.data_type = new_hlsl_type("bool", HLSL_CLASS_SCALAR, HLSL_TYPE_BOOL, 1, 1);
|
||||||
c->v.value.b[0] = $1;
|
c->v.value.b[0] = $1;
|
||||||
$$ = &c->node;
|
$$ = &c->node;
|
||||||
|
@ -832,7 +835,13 @@ primary_expr: C_FLOAT
|
||||||
| variable
|
| variable
|
||||||
{
|
{
|
||||||
struct hlsl_ir_deref *deref = new_var_deref($1);
|
struct hlsl_ir_deref *deref = new_var_deref($1);
|
||||||
$$ = deref ? &deref->node : NULL;
|
if (deref)
|
||||||
|
{
|
||||||
|
$$ = &deref->node;
|
||||||
|
set_location(&$$->loc, &@1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$$ = NULL;
|
||||||
}
|
}
|
||||||
| '(' expr ')'
|
| '(' expr ')'
|
||||||
{
|
{
|
||||||
|
@ -888,6 +897,7 @@ postfix_expr: primary_expr
|
||||||
|
|
||||||
constructor = d3dcompiler_alloc(sizeof(*constructor));
|
constructor = d3dcompiler_alloc(sizeof(*constructor));
|
||||||
constructor->node.type = HLSL_IR_CONSTRUCTOR;
|
constructor->node.type = HLSL_IR_CONSTRUCTOR;
|
||||||
|
set_location(&constructor->node.loc, &@3);
|
||||||
constructor->node.data_type = $2;
|
constructor->node.data_type = $2;
|
||||||
constructor->arguments = $4;
|
constructor->arguments = $4;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue