Clean redundant semicolons from HLSL branch statements
Branch statements can only exist inside block nodes. The block node
that contains a branch will take care of writing a semicolon after
each statement.
BUG=angleproject:1013
TEST=angle_end2end_tests
Change-Id: Ie5d9077c5d2e090c704282dba39b4d46845cbf1e
Reviewed-on: https://chromium-review.googlesource.com/708894
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/compiler/translator/OutputHLSL.cpp b/src/compiler/translator/OutputHLSL.cpp
index a16c174..ca0dde1 100644
--- a/src/compiler/translator/OutputHLSL.cpp
+++ b/src/compiler/translator/OutputHLSL.cpp
@@ -2262,16 +2262,16 @@
bool OutputHLSL::visitBranch(Visit visit, TIntermBranch *node)
{
- TInfoSinkBase &out = getInfoSink();
-
- switch (node->getFlowOp())
+ if (visit == PreVisit)
{
- case EOpKill:
- outputTriplet(out, visit, "discard;\n", "", "");
- break;
- case EOpBreak:
- if (visit == PreVisit)
- {
+ TInfoSinkBase &out = getInfoSink();
+
+ switch (node->getFlowOp())
+ {
+ case EOpKill:
+ out << "discard";
+ break;
+ case EOpBreak:
if (mNestedLoopDepth > 1)
{
mUsesNestedBreak = true;
@@ -2285,35 +2285,25 @@
}
else
{
- out << "break;\n";
+ out << "break";
}
- }
- break;
- case EOpContinue:
- outputTriplet(out, visit, "continue;\n", "", "");
- break;
- case EOpReturn:
- if (visit == PreVisit)
- {
+ break;
+ case EOpContinue:
+ out << "continue";
+ break;
+ case EOpReturn:
if (node->getExpression())
{
out << "return ";
}
else
{
- out << "return;\n";
+ out << "return";
}
- }
- else if (visit == PostVisit)
- {
- if (node->getExpression())
- {
- out << ";\n";
- }
- }
- break;
- default:
- UNREACHABLE();
+ break;
+ default:
+ UNREACHABLE();
+ }
}
return true;