Flesh out 4.x block redeclaration semantics:

- hide non-redeclared anonymous members
 - array size limit checking
 - illegal member qualifiers
 - additional members


git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24406 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich
2013-12-09 00:37:46 +00:00
parent e1b2e39a56
commit c719481d43
16 changed files with 229 additions and 127 deletions

View File

@@ -1,11 +1,13 @@
410.geom
Warning, version 410 is not yet complete; some version-specific features are present, but many are missing.
ERROR: 0:8: 'myIn' : cannot redeclare a built-in block with a user name
ERROR: 0:8: 'gl_' : reserved built-in name
ERROR: 0:12: 'gl_' : reserved built-in name
ERROR: 0:12: 'gl_myIn' : no declaration found for redeclaration
ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
ERROR: 0:20: 'gl_' : reserved built-in name
ERROR: 5 compilation errors. No code generated.
ERROR: 0:32: 'gl_Position' : no such field in structure
ERROR: 0:32: '=' : cannot convert from 'block{gl_PointSize}' to '4-component vector of float'
ERROR: 0:33: 'gl_Position' : member of nameless block was not redeclared
ERROR: 0:33: 'assign' : cannot convert from 'const 4-component vector of float' to 'layout(stream=0 ) gl_Position void'
ERROR: 7 compilation errors. No code generated.
invocations = 0
@@ -35,13 +37,17 @@ ERROR: node is still EOpNull!
0:30 0 (const int)
0:31 move second child to first child (float)
0:31 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float)
0:31 '__anon__0' (layout(stream=0 ) out block{gl_PointSize})
0:31 '__anon__0' (layout(stream=0 ) out block{gl_PointSize,})
0:31 Constant:
0:31 0 (const uint)
0:31 1 (const uint)
0:31 'p' (float)
0:33 gl_Position: direct index for structure (layout(stream=0 ) gl_Position void)
0:33 '__anon__0' (layout(stream=0 ) out block{gl_PointSize,})
0:33 Constant:
0:33 0 (const uint)
0:? Linker Objects
0:? 'gl_in' (in unsized array of block{gl_PointSize})
0:? '__anon__0' (layout(stream=0 ) out block{gl_PointSize})
0:? '__anon__0' (layout(stream=0 ) out block{gl_PointSize,})
Linked geometry stage: