mirror of
https://github.com/RPCS3/glslang.git
synced 2025-02-19 18:31:11 +00:00
Change ERROR to WARNING to finish fixing bug 11904, comment 3: bug 11856 resolved to drop the ERROR regarding no statements after the last label in the switch.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26479 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
8d6ce1c227
commit
2ea882fdae
@ -1,7 +1,7 @@
|
||||
switch.frag
|
||||
ERROR: 0:11: 'switch' : condition must be a scalar integer expression
|
||||
ERROR: 0:14: 'switch' : condition must be a scalar integer expression
|
||||
ERROR: 0:21: 'switch' : last case/default label must be followed by statements
|
||||
WARNING: 0:21: 'switch' : last case/default label not be followed by statements
|
||||
ERROR: 0:28: 'switch' : cannot have statements before first case/default label
|
||||
ERROR: 0:43: 'default' : duplicate label
|
||||
ERROR: 0:63: 'case' : duplicated value
|
||||
@ -15,9 +15,10 @@ ERROR: 0:115: 'default' : cannot be nested inside control flow
|
||||
ERROR: 0:119: 'case' : cannot appear outside switch statement
|
||||
ERROR: 0:120: 'default' : cannot appear outside switch statement
|
||||
ERROR: 0:126: 'onlyInSwitch' : undeclared identifier
|
||||
ERROR: 0:128: 'switch' : last case/default label must be followed by statements
|
||||
WARNING: 0:128: 'switch' : last case/default label not be followed by statements
|
||||
ERROR: 0:140: 'nestedX' : undeclared identifier
|
||||
ERROR: 18 compilation errors. No code generated.
|
||||
ERROR: 0:156: 'nestedZ' : undeclared identifier
|
||||
ERROR: 17 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 300
|
||||
@ -303,32 +304,33 @@ ERROR: node is still EOpNull!
|
||||
0:139 2 (const int)
|
||||
0:? Sequence
|
||||
0:140 'nestedX' (float)
|
||||
0:141 Branch: Break
|
||||
0:142 case: with expression
|
||||
0:142 Constant:
|
||||
0:142 3 (const int)
|
||||
0:143 Branch: Break
|
||||
0:144 case: with expression
|
||||
0:144 Constant:
|
||||
0:144 3 (const int)
|
||||
0:? Sequence
|
||||
0:144 Branch: Break
|
||||
0:145 case: with expression
|
||||
0:145 Constant:
|
||||
0:145 4 (const int)
|
||||
0:146 Branch: Break
|
||||
0:147 case: with expression
|
||||
0:147 Constant:
|
||||
0:147 4 (const int)
|
||||
0:? Sequence
|
||||
0:146 Sequence
|
||||
0:146 move second child to first child (mediump int)
|
||||
0:146 'linearY' (mediump int)
|
||||
0:146 'linearZ' (mediump int)
|
||||
0:147 Branch: Break
|
||||
0:148 case: with expression
|
||||
0:148 Constant:
|
||||
0:148 5 (const int)
|
||||
0:148 Sequence
|
||||
0:148 move second child to first child (mediump int)
|
||||
0:148 'linearY' (mediump int)
|
||||
0:148 'linearZ' (mediump int)
|
||||
0:149 Branch: Break
|
||||
0:150 case: with expression
|
||||
0:150 Constant:
|
||||
0:150 5 (const int)
|
||||
0:? Sequence
|
||||
0:150 Branch: Break
|
||||
0:151 case: with expression
|
||||
0:151 Constant:
|
||||
0:151 6 (const int)
|
||||
0:152 Branch: Break
|
||||
0:153 case: with expression
|
||||
0:153 Constant:
|
||||
0:153 6 (const int)
|
||||
0:? Sequence
|
||||
0:152 Constant:
|
||||
0:152 4 (const int)
|
||||
0:154 Constant:
|
||||
0:154 4 (const int)
|
||||
0:156 'nestedZ' (float)
|
||||
0:? Linker Objects
|
||||
0:? 'c' (uniform mediump int)
|
||||
0:? 'd' (uniform mediump int)
|
||||
@ -621,32 +623,33 @@ ERROR: node is still EOpNull!
|
||||
0:139 2 (const int)
|
||||
0:? Sequence
|
||||
0:140 'nestedX' (float)
|
||||
0:141 Branch: Break
|
||||
0:142 case: with expression
|
||||
0:142 Constant:
|
||||
0:142 3 (const int)
|
||||
0:143 Branch: Break
|
||||
0:144 case: with expression
|
||||
0:144 Constant:
|
||||
0:144 3 (const int)
|
||||
0:? Sequence
|
||||
0:144 Branch: Break
|
||||
0:145 case: with expression
|
||||
0:145 Constant:
|
||||
0:145 4 (const int)
|
||||
0:146 Branch: Break
|
||||
0:147 case: with expression
|
||||
0:147 Constant:
|
||||
0:147 4 (const int)
|
||||
0:? Sequence
|
||||
0:146 Sequence
|
||||
0:146 move second child to first child (mediump int)
|
||||
0:146 'linearY' (mediump int)
|
||||
0:146 'linearZ' (mediump int)
|
||||
0:147 Branch: Break
|
||||
0:148 case: with expression
|
||||
0:148 Constant:
|
||||
0:148 5 (const int)
|
||||
0:148 Sequence
|
||||
0:148 move second child to first child (mediump int)
|
||||
0:148 'linearY' (mediump int)
|
||||
0:148 'linearZ' (mediump int)
|
||||
0:149 Branch: Break
|
||||
0:150 case: with expression
|
||||
0:150 Constant:
|
||||
0:150 5 (const int)
|
||||
0:? Sequence
|
||||
0:150 Branch: Break
|
||||
0:151 case: with expression
|
||||
0:151 Constant:
|
||||
0:151 6 (const int)
|
||||
0:152 Branch: Break
|
||||
0:153 case: with expression
|
||||
0:153 Constant:
|
||||
0:153 6 (const int)
|
||||
0:? Sequence
|
||||
0:152 Constant:
|
||||
0:152 4 (const int)
|
||||
0:154 Constant:
|
||||
0:154 4 (const int)
|
||||
0:156 'nestedZ' (float)
|
||||
0:? Linker Objects
|
||||
0:? 'c' (uniform mediump int)
|
||||
0:? 'd' (uniform mediump int)
|
||||
|
@ -18,7 +18,7 @@ void main()
|
||||
{
|
||||
}
|
||||
|
||||
switch(c) // ERROR, not enough stuff after last label
|
||||
switch(c) // WARNING, not enough stuff after last label
|
||||
{
|
||||
case 2:
|
||||
}
|
||||
@ -127,7 +127,7 @@ void main()
|
||||
|
||||
switch (0) {
|
||||
default:
|
||||
int x; // current "no statement" ERROR, but maybe this should count as a statement, or the semantic check removed
|
||||
int x; // WARNING (was "no statement" ERROR, but spec. changed because unclear what a statement is)
|
||||
}
|
||||
|
||||
switch (c) {
|
||||
@ -138,6 +138,8 @@ void main()
|
||||
}
|
||||
case 2:
|
||||
nestedX; // ERROR
|
||||
int nestedZ;
|
||||
float a; // okay, hiding outer 'a'
|
||||
break;
|
||||
case 3:
|
||||
int linearZ;
|
||||
@ -145,10 +147,11 @@ void main()
|
||||
case 4:
|
||||
int linearY = linearZ;
|
||||
break;
|
||||
case 5: // ERROR? that branch bypassed an initializer?
|
||||
case 5: // okay that branch bypassed an initializer
|
||||
const int linearC = 4;
|
||||
break;
|
||||
case 6: // ERROR? that branch bypassed an initializer?
|
||||
case 6: // okay that branch bypassed an initializer
|
||||
linearC;
|
||||
}
|
||||
nestedZ; // ERROR, no longer in scope
|
||||
}
|
||||
|
@ -4578,7 +4578,7 @@ TIntermNode* TParseContext::addSwitch(TSourceLoc loc, TIntermTyped* expression,
|
||||
return expression;
|
||||
|
||||
if (lastStatements == 0) {
|
||||
error(loc, "last case/default label must be followed by statements", "switch", "");
|
||||
warn(loc, "last case/default label not be followed by statements", "switch", "");
|
||||
|
||||
return expression;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user