Add missing type check for operands having the same type (after conversion) around the ":" in a "?:" operation.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21721 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2013-05-28 07:29:58 +00:00
parent 2d0f1e5424
commit 8d00fd0e29
2 changed files with 11 additions and 0 deletions

View File

@ -71,6 +71,13 @@ void main()
float uvec3;
float uvec4;
//packed; // ERROR, reserved word
{
mat4 m;
vec4 v;
bool b;
gl_FragColor += b ? v : m; // ERROR, types don't match around ":"
}
}
float imageBuffer;

View File

@ -770,6 +770,10 @@ TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* true
return 0;
}
// After conversion, types have to match.
if (falseBlock->getType() != trueBlock->getType())
return 0;
//
// See if all the operands are constant, then fold it otherwise not.
//