Add missing check that a function call is not using the same name as a variable hiding the function's name. Also, support version 110 separate name spaces for functions and variable names.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24480 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2013-12-11 22:38:19 +00:00
parent 623833fabc
commit 3a4687d782
17 changed files with 576 additions and 285 deletions

View file

@ -2,10 +2,13 @@
Warning, version 430 is not yet complete; some version-specific features are present, but many are missing.
ERROR: 0:5: 'a' : redefinition
ERROR: 0:17: 'b' : function name is redeclaration of existing name
ERROR: 0:19: 'f' : redefinition
ERROR: 0:54: 'z' : undeclared identifier
ERROR: 0:54: 'z' : redefinition
ERROR: 5 compilation errors. No code generated.
ERROR: 0:20: 'c' : redefinition
ERROR: 0:22: 'f' : redefinition
ERROR: 0:43: 'sin' : can't use function syntax on variable
ERROR: 0:57: 'z' : undeclared identifier
ERROR: 0:57: 'z' : redefinition
ERROR: 0:73: 'degrees' : can't use function syntax on variable
ERROR: 8 compilation errors. No code generated.
ERROR: node is still EOpNull!
@ -26,90 +29,94 @@ ERROR: node is still EOpNull!
0:8 1.000000
0:11 Branch: Return with expression
0:11 'a' (in int)
0:22 Function Definition: cos(f1; (float)
0:22 Function Parameters:
0:22 'x' (in float)
0:24 Sequence
0:24 Branch: Return with expression
0:24 Constant:
0:24 1.000000
0:26 Function Definition: radians(b1; (bool)
0:26 Function Parameters:
0:26 'x' (in bool)
0:28 Sequence
0:28 Branch: Return with expression
0:28 Constant:
0:28 true (const bool)
0:33 Function Definition: main( (void)
0:33 Function Parameters:
0:25 Function Definition: cos(f1; (float)
0:25 Function Parameters:
0:25 'x' (in float)
0:27 Sequence
0:27 Branch: Return with expression
0:27 Constant:
0:27 1.000000
0:29 Function Definition: radians(b1; (bool)
0:29 Function Parameters:
0:29 'x' (in bool)
0:31 Sequence
0:31 Branch: Return with expression
0:31 Constant:
0:31 true (const bool)
0:36 Function Definition: main( (void)
0:36 Function Parameters:
0:? Sequence
0:36 Function Call: g( (int)
0:39 'sin' (float)
0:41 Function Call: f(i1;i1;i1; (int)
0:41 Constant:
0:41 1 (const int)
0:41 Constant:
0:41 2 (const int)
0:41 Constant:
0:41 3 (const int)
0:44 move second child to first child (float)
0:44 'f' (float)
0:39 Function Call: g( (int)
0:42 'sin' (float)
0:43 Constant:
0:43 0.000000
0:44 Function Call: f(i1;i1;i1; (int)
0:44 Constant:
0:44 3.000000
0:46 move second child to first child (4-component vector of float)
0:46 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float)
0:46 '__anon__0' (out block{gl_Position,gl_PointSize,gl_ClipDistance,gl_ClipVertex,gl_FrontColor,gl_BackColor,gl_FrontSecondaryColor,gl_BackSecondaryColor,gl_TexCoord,gl_FogFragCoord})
0:46 Constant:
0:46 0 (const uint)
0:46 Construct vec4 (4-component vector of float)
0:46 'f' (float)
0:48 Sequence
0:48 Sequence
0:48 move second child to first child (int)
0:48 'f' (int)
0:48 Constant:
0:48 0 (const int)
0:48 Loop with condition tested first
0:48 Loop Condition
0:48 Compare Less Than (bool)
0:48 'f' (int)
0:48 Constant:
0:48 10 (const int)
0:48 Loop Body
0:49 Pre-Increment (int)
0:49 'f' (int)
0:48 Loop Terminal Expression
0:48 Pre-Increment (int)
0:48 'f' (int)
0:44 1 (const int)
0:44 Constant:
0:44 2 (const int)
0:44 Constant:
0:44 3 (const int)
0:47 move second child to first child (float)
0:47 'f' (float)
0:47 Constant:
0:47 3.000000
0:49 move second child to first child (4-component vector of float)
0:49 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float)
0:49 '__anon__0' (out block{gl_Position,gl_PointSize,gl_ClipDistance,gl_ClipVertex,gl_FrontColor,gl_BackColor,gl_FrontSecondaryColor,gl_BackSecondaryColor,gl_TexCoord,gl_FogFragCoord})
0:49 Constant:
0:49 0 (const uint)
0:49 Construct vec4 (4-component vector of float)
0:49 'f' (float)
0:51 Sequence
0:51 move second child to first child (int)
0:51 'x' (int)
0:51 Constant:
0:51 1 (const int)
0:53 Sequence
0:53 Sequence
0:53 move second child to first child (float)
0:53 'x' (float)
0:53 Constant:
0:53 2.000000
0:53 move second child to first child (float)
0:53 'y' (float)
0:53 'x' (float)
0:57 Sequence
0:57 Sequence
0:57 move second child to first child (int)
0:57 'x' (int)
0:57 'x' (int)
0:65 Sequence
0:65 Sequence
0:65 move second child to first child (structure{x})
0:65 'S' (structure{x})
0:65 Constant:
0:65 0 (const int)
0:66 x: direct index for structure (int)
0:66 'S' (structure{x})
0:66 Constant:
0:66 0 (const int)
0:51 Sequence
0:51 move second child to first child (int)
0:51 'f' (int)
0:51 Constant:
0:51 0 (const int)
0:51 Loop with condition tested first
0:51 Loop Condition
0:51 Compare Less Than (bool)
0:51 'f' (int)
0:51 Constant:
0:51 10 (const int)
0:51 Loop Body
0:52 Pre-Increment (int)
0:52 'f' (int)
0:51 Loop Terminal Expression
0:51 Pre-Increment (int)
0:51 'f' (int)
0:54 Sequence
0:54 move second child to first child (int)
0:54 'x' (int)
0:54 Constant:
0:54 1 (const int)
0:56 Sequence
0:56 Sequence
0:56 move second child to first child (float)
0:56 'x' (float)
0:56 Constant:
0:56 2.000000
0:56 move second child to first child (float)
0:56 'y' (float)
0:56 'x' (float)
0:60 Sequence
0:60 Sequence
0:60 move second child to first child (int)
0:60 'x' (int)
0:60 'x' (int)
0:68 Sequence
0:68 Sequence
0:68 move second child to first child (structure{x})
0:68 'S' (structure{x})
0:68 Constant:
0:68 0 (const int)
0:69 x: direct index for structure (int)
0:69 'S' (structure{x})
0:69 Constant:
0:69 0 (const int)
0:73 Constant:
0:73 0.000000
0:? Linker Objects
0:? 'b' (bool)
0:? 'tan' (float)