summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hir_field_selection.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/hir_field_selection.cpp b/hir_field_selection.cpp
index 17c3f5c5ba..685cf75dcf 100644
--- a/hir_field_selection.cpp
+++ b/hir_field_selection.cpp
@@ -62,7 +62,13 @@ _mesa_ast_field_selection_to_hir(const ast_expression *expr,
expr->primary_expression.identifier);
}
} else if (op->type->base_type == GLSL_TYPE_STRUCT) {
- /* FINISHME: Handle field selection from structures. */
+ result = new ir_dereference(op, expr->primary_expression.identifier);
+
+ if (result->type->is_error()) {
+ _mesa_glsl_error(& loc, state, "Cannot access field `%s' of "
+ "structure",
+ expr->primary_expression.identifier);
+ }
} else {
_mesa_glsl_error(& loc, state, "Cannot access field `%s' of "
"non-structure / non-vector.",