From 3a4687d7824a4f65f583195c9f7fcac71150a8cd Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 11 Dec 2013 22:38:19 +0000 Subject: [PATCH] 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 --- Install/Windows/glslangValidator.exe | Bin 420352 -> 423936 bytes Test/100scope.vert | 8 +- Test/110scope.vert | 74 ++++++++ Test/300scope.vert | 8 +- Test/430scope.vert | 8 +- Test/baseResults/100scope.vert.out | 179 +++++++++--------- Test/baseResults/110scope.vert.out | 122 +++++++++++++ Test/baseResults/120.vert.out | 11 +- Test/baseResults/300scope.vert.out | 193 ++++++++++---------- Test/baseResults/430scope.vert.out | 177 +++++++++--------- Test/testlist | 1 + glslang/Include/revision.h | 4 +- glslang/MachineIndependent/ParseHelper.cpp | 5 + glslang/MachineIndependent/ShaderLang.cpp | 2 + glslang/MachineIndependent/SymbolTable.cpp | 5 +- glslang/MachineIndependent/SymbolTable.h | 62 ++++++- glslang/MachineIndependent/linkValidate.cpp | 2 +- 17 files changed, 576 insertions(+), 285 deletions(-) create mode 100644 Test/110scope.vert create mode 100644 Test/baseResults/110scope.vert.out diff --git a/Install/Windows/glslangValidator.exe b/Install/Windows/glslangValidator.exe index 9e288e73157a9b7c3e54dc5b2edb067bddca97e6..0c00fc8880560db05d04770d937c9ceeeff017c2 100644 GIT binary patch delta 138441 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

P3yz6EBaV~_Y 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/qV4wJijJJ-y1$~M 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 JPPM=w_#2l|3B&*Z delta 135987 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 diff --git a/Test/100scope.vert b/Test/100scope.vert index f7e26756..b0a72d1f 100644 --- a/Test/100scope.vert +++ b/Test/100scope.vert @@ -16,6 +16,9 @@ int f(int a, int b, int c); // okay to redeclare bool b; float b(int a); // ERROR: redefinition +float c(int a); +bool c; // ERROR: redefinition + float f; // ERROR: redefinition float tan; // okay, built-in is in an outer scope float sin(float x); // ERROR: can't redefine built-in functions @@ -37,7 +40,7 @@ void main() float sin; // okay sin; - + sin(0.7); // ERROR, use of hidden function f(1,2,3); float f; // hides f() @@ -65,6 +68,9 @@ void main() S S = S(0); // 'S' is only visible as a struct and constructor S.x; // 'S' is now visible as a variable } + + int degrees; + degrees(3.2); // ERROR, use of hidden built-in function } varying struct SSS { float f; } s; // ERROR diff --git a/Test/110scope.vert b/Test/110scope.vert new file mode 100644 index 00000000..564059a2 --- /dev/null +++ b/Test/110scope.vert @@ -0,0 +1,74 @@ +#version 110 + +int f(int a, int b, int c) +{ + int a = b; // ERROR, redefinition + + { + float a = float(a) + 1.0; // okay + } + + return a; +} + +int f(int a, int b, int c); // okay to redeclare + +bool b; +float b(int a); // okay, b and b() are different + +float c(int a); +bool c; // okay, and c() are different + +float f; // okay f and f() are different +float tan; // okay, hides built-in function +float sin(float x); // okay, can redefine built-in functions +float cos(float x) // okay, can redefine built-in functions +{ + return 1.0; +} +bool radians(bool x) // okay, can overload built-in functions +{ + return true; +} + + + +void main() +{ + int g(); // okay + g(); + + float sin; // okay + sin; + sin(0.7); // okay + f(1,2,3); + + float f; + f = 3.0; + + gl_Position = vec4(f); + + for (int f = 0; f < 10; ++f) + ++f; + + int x = 1; + { + float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2 + int z = z; // ERROR: z not previously defined. + } + { + int x = x; // x is initialized to '1' + } + + struct S + { + int x; + }; + { + S S = S(0); // 'S' is only visible as a struct and constructor + S.x; // 'S' is now visible as a variable + } + + int degrees; + degrees(3.2); +} diff --git a/Test/300scope.vert b/Test/300scope.vert index f88cb058..162e9982 100644 --- a/Test/300scope.vert +++ b/Test/300scope.vert @@ -16,6 +16,9 @@ int f(int a, int b, int c); // okay to redeclare bool b; float b(int a); // ERROR: redefinition +float c(int a); +bool c; // ERROR: redefinition + float f; // ERROR: redefinition float tan; // ERROR: redefines built-in function float sin(float x); // ERROR: can't redefine built-in functions @@ -37,7 +40,7 @@ void main() float sin; // okay sin; - + sin(0.7); // ERROR, use of hidden function f(1,2,3); float f; // hides f() @@ -65,4 +68,7 @@ void main() S S = S(0); // 'S' is only visible as a struct and constructor S.x; // 'S' is now visible as a variable } + + int degrees; + degrees(3.2); // ERROR, use of hidden built-in function } diff --git a/Test/430scope.vert b/Test/430scope.vert index b854ef74..7efa1623 100644 --- a/Test/430scope.vert +++ b/Test/430scope.vert @@ -16,6 +16,9 @@ int f(int a, int b, int c); // okay to redeclare bool b; float b(int a); // ERROR: redefinition +float c(int a); +bool c; // ERROR: redefinition + float f; // ERROR: redefinition float tan; // okay, hides built-in function float sin(float x); // okay, can redefine built-in functions @@ -37,7 +40,7 @@ void main() float sin; // okay sin; - + sin(0.7); // ERROR, use of hidden function f(1,2,3); float f; // hides f() @@ -65,4 +68,7 @@ void main() S S = S(0); // 'S' is only visible as a struct and constructor S.x; // 'S' is now visible as a variable } + + int degrees; + degrees(3.2); // ERROR, use of hidden built-in function } diff --git a/Test/baseResults/100scope.vert.out b/Test/baseResults/100scope.vert.out index f155096c..a196adef 100644 --- a/Test/baseResults/100scope.vert.out +++ b/Test/baseResults/100scope.vert.out @@ -1,14 +1,17 @@ 100scope.vert ERROR: 0:5: 'a' : redefinition ERROR: 0:17: 'b' : function name is redeclaration of existing name -ERROR: 0:19: 'f' : redefinition -ERROR: 0:21: 'redefinition of built-in function' : not supported with this profile: es -ERROR: 0:22: 'redefinition of built-in function' : not supported with this profile: es -ERROR: 0:35: 'local function declaration' : not supported with this profile: es -ERROR: 0:54: 'z' : undeclared identifier -ERROR: 0:54: 'z' : redefinition -ERROR: 0:70: 'vertex-shader struct output' : not supported for this version or the enabled extensions -ERROR: 9 compilation errors. No code generated. +ERROR: 0:20: 'c' : redefinition +ERROR: 0:22: 'f' : redefinition +ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es +ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es +ERROR: 0:38: 'local function declaration' : not supported with this profile: es +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: 0:76: 'vertex-shader struct output' : not supported for this version or the enabled extensions +ERROR: 12 compilation errors. No code generated. ERROR: node is still EOpNull! @@ -29,87 +32,91 @@ ERROR: node is still EOpNull! 0:8 1.000000 0:11 Branch: Return with expression 0:11 'a' (in highp int) -0:22 Function Definition: cos(f1; (highp float) -0:22 Function Parameters: -0:22 'x' (in highp 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; (highp float) +0:25 Function Parameters: +0:25 'x' (in highp 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( (highp int) -0:39 'sin' (highp float) -0:41 Function Call: f(i1;i1;i1; (highp 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 (highp float) -0:44 'f' (highp float) +0:39 Function Call: g( (highp int) +0:42 'sin' (highp float) +0:43 Constant: +0:43 0.000000 +0:44 Function Call: f(i1;i1;i1; (highp int) 0:44 Constant: -0:44 3.000000 -0:46 move second child to first child (highp 4-component vector of float) -0:46 'gl_Position' (invariant gl_Position highp 4-component vector of float) -0:46 Construct vec4 (highp 4-component vector of float) -0:46 'f' (highp float) -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (highp int) -0:48 'f' (highp 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' (highp int) -0:48 Constant: -0:48 10 (const int) -0:48 Loop Body -0:49 Pre-Increment (highp int) -0:49 'f' (highp int) -0:48 Loop Terminal Expression -0:48 Pre-Increment (highp int) -0:48 'f' (highp 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 (highp float) +0:47 'f' (highp float) +0:47 Constant: +0:47 3.000000 +0:49 move second child to first child (highp 4-component vector of float) +0:49 'gl_Position' (invariant gl_Position highp 4-component vector of float) +0:49 Construct vec4 (highp 4-component vector of float) +0:49 'f' (highp float) 0:51 Sequence -0:51 move second child to first child (highp int) -0:51 'x' (highp int) -0:51 Constant: -0:51 1 (const int) -0:53 Sequence -0:53 Sequence -0:53 move second child to first child (highp float) -0:53 'x' (highp float) -0:53 Constant: -0:53 2.000000 -0:53 move second child to first child (highp float) -0:53 'y' (highp float) -0:53 'x' (highp float) -0:57 Sequence -0:57 Sequence -0:57 move second child to first child (highp int) -0:57 'x' (highp int) -0:57 'x' (highp 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 (highp 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 (highp int) +0:51 'f' (highp 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' (highp int) +0:51 Constant: +0:51 10 (const int) +0:51 Loop Body +0:52 Pre-Increment (highp int) +0:52 'f' (highp int) +0:51 Loop Terminal Expression +0:51 Pre-Increment (highp int) +0:51 'f' (highp int) +0:54 Sequence +0:54 move second child to first child (highp int) +0:54 'x' (highp int) +0:54 Constant: +0:54 1 (const int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child (highp float) +0:56 'x' (highp float) +0:56 Constant: +0:56 2.000000 +0:56 move second child to first child (highp float) +0:56 'y' (highp float) +0:56 'x' (highp float) +0:60 Sequence +0:60 Sequence +0:60 move second child to first child (highp int) +0:60 'x' (highp int) +0:60 'x' (highp 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 (highp 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' (highp float) diff --git a/Test/baseResults/110scope.vert.out b/Test/baseResults/110scope.vert.out new file mode 100644 index 00000000..cabb6582 --- /dev/null +++ b/Test/baseResults/110scope.vert.out @@ -0,0 +1,122 @@ +110scope.vert +ERROR: 0:5: 'a' : redefinition +ERROR: 0:57: 'z' : undeclared identifier +ERROR: 0:57: 'z' : redefinition +ERROR: 3 compilation errors. No code generated. + + +ERROR: node is still EOpNull! +0:3 Function Definition: f(i1;i1;i1; (int) +0:3 Function Parameters: +0:3 'a' (in int) +0:3 'b' (in int) +0:3 'c' (in int) +0:? Sequence +0:8 Sequence +0:8 Sequence +0:8 move second child to first child (float) +0:8 'a' (float) +0:8 add (float) +0:8 Convert int to float (float) +0:8 'a' (in int) +0:8 Constant: +0:8 1.000000 +0:11 Branch: Return with expression +0:11 'a' (in int) +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:39 Function Call: g( (int) +0:42 'sin' (float) +0:43 Function Call: sin(f1; (float) +0:43 Constant: +0:43 0.700000 +0:44 Function Call: f(i1;i1;i1; (int) +0:44 Constant: +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' (gl_Position 4-component vector of float) +0:49 Construct vec4 (4-component vector of float) +0:49 'f' (float) +0:51 Sequence +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 183.346494 +0:? Linker Objects +0:? 'b' (bool) +0:? 'c' (bool) +0:? 'f' (float) +0:? 'tan' (float) + + +Linked vertex stage: + + + diff --git a/Test/baseResults/120.vert.out b/Test/baseResults/120.vert.out index 9948a0ea..4b99b0dc 100644 --- a/Test/baseResults/120.vert.out +++ b/Test/baseResults/120.vert.out @@ -14,7 +14,7 @@ ERROR: 0:32: 'length' : method does not accept any arguments ERROR: 0:33: 'flizbit' : only the length method is supported for array ERROR: 0:33: '=' : cannot convert from '7-element array of float' to 'int' ERROR: 0:34: 'flizbit' : only the length method is supported for array -ERROR: 0:34: 'f' : no matching overloaded function found +ERROR: 0:34: 'f' : can't use function syntax on variable ERROR: 0:34: 'a4' : redefinition ERROR: 0:35: 'arrays of arrays' : not supported with this profile: none ERROR: 0:36: 'arrays of arrays' : not supported with this profile: none @@ -38,13 +38,14 @@ ERROR: 0:57: 'float' : overloaded functions must have the same return type ERROR: 0:87: 'overloadC' : no matching overloaded function found ERROR: 0:90: 'overloadC' : no matching overloaded function found ERROR: 0:95: 'overloadD' : ambiguous function signature match: multiple signatures match under implicit type conversion +ERROR: 0:98: 'overloadB' : can't use function syntax on variable ERROR: 0:106: 'overloadC' : no matching overloaded function found ERROR: 0:107: 'overloadE' : no matching overloaded function found ERROR: 0:108: 'overloadE' : no matching overloaded function found ERROR: 0:111: 'overloadE' : no matching overloaded function found ERROR: 0:117: 'overloadF' : no matching overloaded function found ERROR: 0:121: 'gl_TexCoord array size' : must be less than gl_MaxTextureCoords (32) -ERROR: 45 compilation errors. No code generated. +ERROR: 46 compilation errors. No code generated. ERROR: node is still EOpNull! @@ -138,10 +139,8 @@ ERROR: node is still EOpNull! 0:95 Function Call: overloadD(f1;i1; (3-component vector of float) 0:95 'i' (int) 0:95 'i' (int) -0:98 Function Call: overloadB(f1;f1; (2-component vector of float) -0:98 Constant: -0:98 1 (const int) -0:98 'i' (int) +0:98 Constant: +0:98 0.000000 0:100 Constant: 0:100 0.000000 0:101 Function Call: texture2D(s21;vf2; (4-component vector of float) diff --git a/Test/baseResults/300scope.vert.out b/Test/baseResults/300scope.vert.out index a51f24aa..c9aefe44 100644 --- a/Test/baseResults/300scope.vert.out +++ b/Test/baseResults/300scope.vert.out @@ -1,21 +1,24 @@ 300scope.vert ERROR: 0:5: 'a' : redefinition ERROR: 0:17: 'b' : function name is redeclaration of existing name -ERROR: 0:19: 'f' : redefinition -ERROR: 0:20: 'tan' : redefinition -ERROR: 0:21: 'redefinition of built-in function' : not supported with this profile: es -ERROR: 0:21: 'sin' : function name is redeclaration of existing name -ERROR: 0:22: 'redefinition of built-in function' : not supported with this profile: es -ERROR: 0:22: 'cos' : function name is redeclaration of existing name -ERROR: 0:22: 'cos' : function already has a body -ERROR: 0:24: 'return' : void function cannot return a value -ERROR: 0:26: 'radians' : function name is redeclaration of existing name -ERROR: 0:26: 'radians' : can't find function -ERROR: 0:28: 'return' : void function cannot return a value -ERROR: 0:35: 'local function declaration' : not supported with this profile: es -ERROR: 0:54: 'z' : undeclared identifier -ERROR: 0:54: 'z' : redefinition -ERROR: 16 compilation errors. No code generated. +ERROR: 0:20: 'c' : redefinition +ERROR: 0:22: 'f' : redefinition +ERROR: 0:23: 'tan' : redefinition +ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es +ERROR: 0:24: 'sin' : function name is redeclaration of existing name +ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es +ERROR: 0:25: 'cos' : function name is redeclaration of existing name +ERROR: 0:25: 'cos' : function already has a body +ERROR: 0:27: 'return' : void function cannot return a value +ERROR: 0:29: 'radians' : function name is redeclaration of existing name +ERROR: 0:29: 'radians' : can't find function +ERROR: 0:31: 'return' : void function cannot return a value +ERROR: 0:38: 'local function declaration' : not supported with this profile: es +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: 19 compilation errors. No code generated. ERROR: node is still EOpNull! @@ -36,87 +39,91 @@ ERROR: node is still EOpNull! 0:8 1.000000 0:11 Branch: Return with expression 0:11 'a' (in highp int) -0:22 Function Definition: cos(f1; (highp float) -0:22 Function Parameters: -0:22 'x' (in highp 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; (highp float) +0:25 Function Parameters: +0:25 'x' (in highp 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( (highp int) -0:39 'sin' (highp float) -0:41 Function Call: f(i1;i1;i1; (highp 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 (highp float) -0:44 'f' (highp float) +0:39 Function Call: g( (highp int) +0:42 'sin' (highp float) +0:43 Constant: +0:43 0.000000 +0:44 Function Call: f(i1;i1;i1; (highp int) 0:44 Constant: -0:44 3.000000 -0:46 move second child to first child (highp 4-component vector of float) -0:46 'gl_Position' (invariant gl_Position highp 4-component vector of float) -0:46 Construct vec4 (highp 4-component vector of float) -0:46 'f' (highp float) -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (highp int) -0:48 'f' (highp 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' (highp int) -0:48 Constant: -0:48 10 (const int) -0:48 Loop Body -0:49 Pre-Increment (highp int) -0:49 'f' (highp int) -0:48 Loop Terminal Expression -0:48 Pre-Increment (highp int) -0:48 'f' (highp 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 (highp float) +0:47 'f' (highp float) +0:47 Constant: +0:47 3.000000 +0:49 move second child to first child (highp 4-component vector of float) +0:49 'gl_Position' (invariant gl_Position highp 4-component vector of float) +0:49 Construct vec4 (highp 4-component vector of float) +0:49 'f' (highp float) 0:51 Sequence -0:51 move second child to first child (highp int) -0:51 'x' (highp int) -0:51 Constant: -0:51 1 (const int) -0:53 Sequence -0:53 Sequence -0:53 move second child to first child (highp float) -0:53 'x' (highp float) -0:53 Constant: -0:53 2.000000 -0:53 move second child to first child (highp float) -0:53 'y' (highp float) -0:53 'x' (highp float) -0:57 Sequence -0:57 Sequence -0:57 move second child to first child (highp int) -0:57 'x' (highp int) -0:57 'x' (highp 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 (highp 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 (highp int) +0:51 'f' (highp 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' (highp int) +0:51 Constant: +0:51 10 (const int) +0:51 Loop Body +0:52 Pre-Increment (highp int) +0:52 'f' (highp int) +0:51 Loop Terminal Expression +0:51 Pre-Increment (highp int) +0:51 'f' (highp int) +0:54 Sequence +0:54 move second child to first child (highp int) +0:54 'x' (highp int) +0:54 Constant: +0:54 1 (const int) +0:56 Sequence +0:56 Sequence +0:56 move second child to first child (highp float) +0:56 'x' (highp float) +0:56 Constant: +0:56 2.000000 +0:56 move second child to first child (highp float) +0:56 'y' (highp float) +0:56 'x' (highp float) +0:60 Sequence +0:60 Sequence +0:60 move second child to first child (highp int) +0:60 'x' (highp int) +0:60 'x' (highp 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 (highp 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:? 'gl_VertexID' (gl_VertexId highp int) diff --git a/Test/baseResults/430scope.vert.out b/Test/baseResults/430scope.vert.out index 1dcd5f66..8c56d416 100644 --- a/Test/baseResults/430scope.vert.out +++ b/Test/baseResults/430scope.vert.out @@ -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) diff --git a/Test/testlist b/Test/testlist index f79b1183..f32ea4ee 100644 --- a/Test/testlist +++ b/Test/testlist @@ -45,6 +45,7 @@ switch.frag tokenLength.vert 100Limits.vert 100scope.vert +110scope.vert 300scope.vert 400.frag 420.vert diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 2a388082..7df6a5d5 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -9,5 +9,5 @@ // source have to figure out how to create revision.h just to get a build // going. However, if it is not updated, it can be a version behind. -#define GLSLANG_REVISION "24420" -#define GLSLANG_DATE "2013/12/09 17:25:14" +#define GLSLANG_REVISION "24468" +#define GLSLANG_DATE "2013/12/11 11:57:40" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 7fe11297..10edd0ac 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -2904,6 +2904,11 @@ const TFunction* TParseContext::findFunction(TSourceLoc loc, const TFunction& ca { const TFunction* function = 0; + if (symbolTable.isFunctionNameVariable(call.getName())) { + error(loc, "can't use function syntax on variable", call.getName().c_str(), ""); + return 0; + } + if (profile == EEsProfile || version < 120) function = findFunctionExact(loc, call, builtIn); else if (version < 400) diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index c7a0aa91..53f9451e 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -170,6 +170,8 @@ void InitializeStageSymbolTable(TBuiltIns& builtIns, int version, EProfile profi IdentifyBuiltIns(version, profile, language, *symbolTables[language]); if (profile == EEsProfile && version >= 300) (*symbolTables[language]).setNoBuiltInRedeclarations(); + if (version == 110) + (*symbolTables[language]).setSeparateNameSpaces(); } // diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp index 9c18a7a3..1384c466 100644 --- a/glslang/MachineIndependent/SymbolTable.cpp +++ b/glslang/MachineIndependent/SymbolTable.cpp @@ -322,11 +322,11 @@ TSymbolTableLevel* TSymbolTableLevel::clone() const TVariable* container = anon->getAnonContainer().clone(); container->changeName(NewPoolTString("")); // insert the whole container - symTableLevel->insert(*container); + symTableLevel->insert(*container, false); containerCopied[anon->getAnonId()] = true; } } else - symTableLevel->insert(*iter->second->clone()); + symTableLevel->insert(*iter->second->clone(), false); } return symTableLevel; @@ -338,6 +338,7 @@ void TSymbolTable::copyTable(const TSymbolTable& copyOf) uniqueId = copyOf.uniqueId; noBuiltInRedeclarations = copyOf.noBuiltInRedeclarations; + separateNameSpaces = copyOf.separateNameSpaces; for (unsigned int i = copyOf.adoptedLevels; i < copyOf.table.size(); ++i) table.push_back(copyOf.table[i]->clone()); } diff --git a/glslang/MachineIndependent/SymbolTable.h b/glslang/MachineIndependent/SymbolTable.h index 71f07f5c..7dac826f 100644 --- a/glslang/MachineIndependent/SymbolTable.h +++ b/glslang/MachineIndependent/SymbolTable.h @@ -283,7 +283,7 @@ public: TSymbolTableLevel() : defaultPrecision(0), anonId(0) { } ~TSymbolTableLevel(); - bool insert(TSymbol& symbol) + bool insert(TSymbol& symbol, bool separateNameSpaces) { // // returning true means symbol was added to the table with no semantic errors @@ -316,7 +316,7 @@ public: const TString& insertName = symbol.getMangledName(); if (symbol.getAsFunction()) { // make sure there isn't a variable of this name - if (level.find(name) != level.end()) + if (! separateNameSpaces && level.find(name) != level.end()) return false; // insert, and whatever happens is okay @@ -367,6 +367,34 @@ public: return false; } + // See if there is a variable at this level having the given non-function-style name. + // Return true if name is found, and set variable to true if the name was a variable. + bool findFunctionVariableName(const TString& name, bool& variable) const + { + tLevel::const_iterator candidate = level.lower_bound(name); + if (candidate != level.end()) { + const TString& candidateName = (*candidate).first; + TString::size_type parenAt = candidateName.find_first_of('('); + if (parenAt == candidateName.npos) { + // not a mangled name + if (candidateName == name) { + // found a variable name match + variable = true; + return true; + } + } else { + // a mangled name + if (candidateName.compare(0, parenAt, name) == 0) { + // found a function name match + variable = false; + return true; + } + } + } + + return false; + } + // Use this to do a lazy 'push' of precision defaults the first time // a precision statement is seen in a new scope. Leave it at 0 for // when no push was needed. Thus, it is not the current defaults, @@ -415,7 +443,7 @@ protected: class TSymbolTable { public: - TSymbolTable() : uniqueId(0), noBuiltInRedeclarations(false), adoptedLevels(0) + TSymbolTable() : uniqueId(0), noBuiltInRedeclarations(false), separateNameSpaces(false), adoptedLevels(0) { // // This symbol table cannot be used until push() is called. @@ -438,6 +466,7 @@ public: } uniqueId = symTable.uniqueId; noBuiltInRedeclarations = symTable.noBuiltInRedeclarations; + separateNameSpaces = symTable.separateNameSpaces; } // @@ -459,6 +488,7 @@ public: bool atGlobalLevel() { return isGlobalLevel(currentLevel()); } void setNoBuiltInRedeclarations() { noBuiltInRedeclarations = true; } + void setSeparateNameSpaces() { separateNameSpaces = true; } void push() { @@ -477,7 +507,7 @@ public: symbol.setUniqueId(++uniqueId); // make sure there isn't a function of this variable name - if (! symbol.getAsFunction() && table[currentLevel()]->hasFunctionName(symbol.getName())) + if (! separateNameSpaces && ! symbol.getAsFunction() && table[currentLevel()]->hasFunctionName(symbol.getName())) return false; // check for not overloading or redefining a built-in function @@ -490,7 +520,7 @@ public: } } - return table[currentLevel()]->insert(symbol); + return table[currentLevel()]->insert(symbol, separateNameSpaces); } // @@ -517,12 +547,12 @@ public: TSymbol* copyUp(TSymbol* shared) { TSymbol* copy = copyUpDeferredInsert(shared); - table[globalLevel]->insert(*copy); + table[globalLevel]->insert(*copy, separateNameSpaces); if (shared->getAsVariable()) return copy; else { // get copy of an anonymous member's container - table[currentLevel()]->insert(*copy); + table[currentLevel()]->insert(*copy, separateNameSpaces); // return the copy of the anonymous member return table[currentLevel()]->find(shared->getName()); } @@ -545,6 +575,23 @@ public: return symbol; } + bool isFunctionNameVariable(const TString& name) const + { + if (separateNameSpaces) + return false; + + int level = currentLevel(); + do { + bool variable; + bool found = table[level]->findFunctionVariableName(name, variable); + if (found) + return variable; + --level; + } while (level >= 0); + + return false; + } + void findFunctionNameList(const TString& name, TVector& list, bool& builtIn) { // For user levels, return the set found in the first scope with a match @@ -606,6 +653,7 @@ protected: std::vector table; int uniqueId; // for unique identification in code generation bool noBuiltInRedeclarations; + bool separateNameSpaces; unsigned int adoptedLevels; }; diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index e3c13eb8..74394c50 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -91,7 +91,7 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) else if (vertices != unit.vertices) error(infoSink, "Contradictory layout max_vertices values"); - if (vertexSpacing == ElgNone) + if (vertexSpacing == EvsNone) vertexSpacing = unit.vertexSpacing; else if (vertexSpacing != unit.vertexSpacing) error(infoSink, "Contradictory input vertex spacing");