glsl: do not lookup struct types by typename
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Sun, 14 May 2017 17:58:53 +0000 (19:58 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Tue, 13 Jun 2017 07:35:29 +0000 (09:35 +0200)
commit0cb1f25d86b0be00a84d1c4f3062cd64c4118b42
tree947e4765abd13c9d349455b6b6c1fc20b7f695dc
parentd6ec0aa7edfbe1c86861a4643b6b095a243d24ad
glsl: do not lookup struct types by typename

This changes the logic during the conversion of the declaration list

   struct S {
      ...
   } v;

from AST to IR, but should not change the end result.

When assigning the type of v, instead of looking `S' up in the symbol
table, we read the type from the member variable of ast_struct_specifier.

This change is necessary for the subsequent change to how anonymous types
are handled.

v2: remove a type override when redefining a structure; should be
    the same type in that case anyway

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/compiler/glsl/ast.h
src/compiler/glsl/ast_to_hir.cpp
src/compiler/glsl/glsl_parser_extras.cpp