Semantic checks for .length(), switch/case/default, and multidimensional arrays.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22175 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
@@ -8,37 +8,39 @@ void main()
|
||||
float f;
|
||||
int a[2];
|
||||
|
||||
switch(f) { // ERROR
|
||||
switch(f) { // ERROR
|
||||
}
|
||||
|
||||
switch(a) { // ERROR
|
||||
switch(a) { // ERROR
|
||||
}
|
||||
|
||||
switch(c)
|
||||
{
|
||||
}
|
||||
|
||||
switch(c)
|
||||
switch(c) // ERROR, not enough stuff after last label
|
||||
{
|
||||
case 2: // ERROR, not enough stuff
|
||||
case 2:
|
||||
}
|
||||
|
||||
switch(c)
|
||||
{
|
||||
f = sin(x); // ERRROR
|
||||
case 2: // ERROR, not enough stuff
|
||||
f = sin(x); // ERRROR
|
||||
case 2:
|
||||
f = cos(x);
|
||||
break;
|
||||
}
|
||||
|
||||
switch (c) {
|
||||
default:
|
||||
break;
|
||||
case 1:
|
||||
f = sin(x);
|
||||
break;
|
||||
case 2:
|
||||
f = cos(x);
|
||||
break;
|
||||
default:
|
||||
default: // ERROR, 2nd default
|
||||
f = tan(x);
|
||||
}
|
||||
|
||||
@@ -58,7 +60,31 @@ void main()
|
||||
break;
|
||||
default:
|
||||
f = tan(x);
|
||||
case 1: // ERROR, 2nd 'case 1'
|
||||
break;
|
||||
case 3.8: // ERROR, non-int
|
||||
break;
|
||||
case c: // ERROR, non-constant
|
||||
break;
|
||||
}
|
||||
|
||||
break; // ERROR
|
||||
switch (c) { // a no-error normal switch
|
||||
case 1:
|
||||
f = sin(x);
|
||||
break;
|
||||
case 2:
|
||||
switch (d) {
|
||||
case 1:
|
||||
f = x * x * x;
|
||||
break;
|
||||
case 2:
|
||||
f = x * x;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
f = tan(x);
|
||||
}
|
||||
|
||||
break; // ERROR
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user