summaryrefslogtreecommitdiffstats
path: root/gfx/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp')
-rwxr-xr-xgfx/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/gfx/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp b/gfx/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp
index b6a355a13..3ef555fc8 100755
--- a/gfx/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp
+++ b/gfx/angle/src/compiler/translator/UnfoldShortCircuitAST.cpp
@@ -6,37 +6,36 @@
#include "compiler/translator/UnfoldShortCircuitAST.h"
-namespace sh
-{
-
namespace
{
// "x || y" is equivalent to "x ? true : y".
-TIntermTernary *UnfoldOR(TIntermTyped *x, TIntermTyped *y)
+TIntermSelection *UnfoldOR(TIntermTyped *x, TIntermTyped *y)
{
+ const TType boolType(EbtBool, EbpUndefined);
TConstantUnion *u = new TConstantUnion;
u->setBConst(true);
TIntermConstantUnion *trueNode = new TIntermConstantUnion(
u, TType(EbtBool, EbpUndefined, EvqConst, 1));
- return new TIntermTernary(x, trueNode, y);
+ return new TIntermSelection(x, trueNode, y, boolType);
}
// "x && y" is equivalent to "x ? y : false".
-TIntermTernary *UnfoldAND(TIntermTyped *x, TIntermTyped *y)
+TIntermSelection *UnfoldAND(TIntermTyped *x, TIntermTyped *y)
{
+ const TType boolType(EbtBool, EbpUndefined);
TConstantUnion *u = new TConstantUnion;
u->setBConst(false);
TIntermConstantUnion *falseNode = new TIntermConstantUnion(
u, TType(EbtBool, EbpUndefined, EvqConst, 1));
- return new TIntermTernary(x, y, falseNode);
+ return new TIntermSelection(x, y, falseNode, boolType);
}
} // namespace anonymous
bool UnfoldShortCircuitAST::visitBinary(Visit visit, TIntermBinary *node)
{
- TIntermTernary *replacement = nullptr;
+ TIntermSelection *replacement = NULL;
switch (node->getOp())
{
@@ -55,5 +54,3 @@ bool UnfoldShortCircuitAST::visitBinary(Visit visit, TIntermBinary *node)
}
return true;
}
-
-} // namespace sh