diff options
Diffstat (limited to 'gfx/angle/src/compiler/translator/RemovePow.cpp')
-rwxr-xr-x | gfx/angle/src/compiler/translator/RemovePow.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/gfx/angle/src/compiler/translator/RemovePow.cpp b/gfx/angle/src/compiler/translator/RemovePow.cpp index 192084c36..ba505753a 100755 --- a/gfx/angle/src/compiler/translator/RemovePow.cpp +++ b/gfx/angle/src/compiler/translator/RemovePow.cpp @@ -13,9 +13,6 @@ #include "compiler/translator/InfoSink.h" #include "compiler/translator/IntermNode.h" -namespace sh -{ - namespace { @@ -58,15 +55,19 @@ bool RemovePowTraverser::visitAggregate(Visit visit, TIntermAggregate *node) TIntermTyped *x = node->getSequence()->at(0)->getAsTyped(); TIntermTyped *y = node->getSequence()->at(1)->getAsTyped(); - TIntermUnary *log = new TIntermUnary(EOpLog2, x); + TIntermUnary *log = new TIntermUnary(EOpLog2); + log->setOperand(x); log->setLine(node->getLine()); + log->setType(x->getType()); TOperator op = TIntermBinary::GetMulOpBasedOnOperands(y->getType(), log->getType()); TIntermBinary *mul = new TIntermBinary(op, y, log); mul->setLine(node->getLine()); - TIntermUnary *exp = new TIntermUnary(EOpExp2, mul); + TIntermUnary *exp = new TIntermUnary(EOpExp2); + exp->setOperand(mul); exp->setLine(node->getLine()); + exp->setType(node->getType()); queueReplacement(node, exp, OriginalNode::IS_DROPPED); @@ -95,5 +96,3 @@ void RemovePow(TIntermNode *root) } while (traverser.needAnotherIteration()); } - -} // namespace sh |