1) Don't propagate precision of built-in function arguments to return type when return type is bool (e.g., isnan).

2) Check an additional path for missing default precision qualification, except allow built-in declarations to pass the check.  

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22241 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2013-07-01 17:56:24 +00:00
parent 6c0928d924
commit 1fde51d3fb
6 changed files with 17 additions and 9 deletions

View file

@ -289,7 +289,7 @@ TIntermTyped* TIntermediate::addBuiltInFunctionCall(TOperator op, bool unary, TI
node->setType(returnType);
// propagate precision up from child
if (returnType.getQualifier().precision == EpqNone && profile == EEsProfile)
if (profile == EEsProfile && returnType.getQualifier().precision == EpqNone && returnType.getBasicType() != EbtBool)
node->getQualifier().precision = child->getQualifier().precision;
// propagate precision down to child