Commit 13e4d21b by Olli Etuaho Committed by Commit Bot

Add switch and case node support to intermediate output

After this all node types are printed correctly in intermediate output. BUG=angleproject:1544 TEST=shader_translator -i Change-Id: I5c120b0ff69f66b00db88e8423a1c698d339af22 Reviewed-on: https://chromium-review.googlesource.com/397319Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
parent 0b031061
...@@ -48,12 +48,13 @@ class TOutputTraverser : public TIntermTraverser ...@@ -48,12 +48,13 @@ class TOutputTraverser : public TIntermTraverser
bool visitUnary(Visit visit, TIntermUnary *) override; bool visitUnary(Visit visit, TIntermUnary *) override;
bool visitTernary(Visit visit, TIntermTernary *node) override; bool visitTernary(Visit visit, TIntermTernary *node) override;
bool visitIfElse(Visit visit, TIntermIfElse *node) override; bool visitIfElse(Visit visit, TIntermIfElse *node) override;
bool visitSwitch(Visit visit, TIntermSwitch *node) override;
bool visitCase(Visit visit, TIntermCase *node) override;
bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override; bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override;
bool visitAggregate(Visit visit, TIntermAggregate *) override; bool visitAggregate(Visit visit, TIntermAggregate *) override;
bool visitBlock(Visit visit, TIntermBlock *) override; bool visitBlock(Visit visit, TIntermBlock *) override;
bool visitLoop(Visit visit, TIntermLoop *) override; bool visitLoop(Visit visit, TIntermLoop *) override;
bool visitBranch(Visit visit, TIntermBranch *) override; bool visitBranch(Visit visit, TIntermBranch *) override;
// TODO: Add missing visit functions
}; };
// //
...@@ -560,6 +561,35 @@ bool TOutputTraverser::visitIfElse(Visit visit, TIntermIfElse *node) ...@@ -560,6 +561,35 @@ bool TOutputTraverser::visitIfElse(Visit visit, TIntermIfElse *node)
return false; return false;
} }
bool TOutputTraverser::visitSwitch(Visit visit, TIntermSwitch *node)
{
TInfoSinkBase &out = sink;
OutputTreeText(out, node, mDepth);
out << "Switch\n";
return true;
}
bool TOutputTraverser::visitCase(Visit visit, TIntermCase *node)
{
TInfoSinkBase &out = sink;
OutputTreeText(out, node, mDepth);
if (node->getCondition() == nullptr)
{
out << "Default\n";
}
else
{
out << "Case\n";
}
return true;
}
void TOutputTraverser::visitConstantUnion(TIntermConstantUnion *node) void TOutputTraverser::visitConstantUnion(TIntermConstantUnion *node)
{ {
TInfoSinkBase &out = sink; TInfoSinkBase &out = sink;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment