diff options
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/AddDefaultReturnStatements.cpp')
-rw-r--r-- | src/3rdparty/angle/src/compiler/translator/AddDefaultReturnStatements.cpp | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/src/3rdparty/angle/src/compiler/translator/AddDefaultReturnStatements.cpp b/src/3rdparty/angle/src/compiler/translator/AddDefaultReturnStatements.cpp deleted file mode 100644 index 4dfe60c0bc..0000000000 --- a/src/3rdparty/angle/src/compiler/translator/AddDefaultReturnStatements.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// -// Copyright (c) 2016 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// AddDefaultReturnStatements.cpp: Add default return statements to functions that do not end in a -// return. -// - -#include "compiler/translator/AddDefaultReturnStatements.h" - -#include "compiler/translator/IntermNode.h" -#include "compiler/translator/IntermNode_util.h" -#include "compiler/translator/util.h" - -namespace sh -{ - -namespace -{ - -bool NeedsReturnStatement(TIntermFunctionDefinition *node, TType *returnType) -{ - *returnType = node->getFunctionPrototype()->getType(); - if (returnType->getBasicType() == EbtVoid) - { - return false; - } - - TIntermBlock *bodyNode = node->getBody(); - TIntermBranch *returnNode = bodyNode->getSequence()->back()->getAsBranchNode(); - if (returnNode != nullptr && returnNode->getFlowOp() == EOpReturn) - { - return false; - } - - return true; -} - -} // anonymous namespace - -void AddDefaultReturnStatements(TIntermBlock *root) -{ - TType returnType; - for (TIntermNode *node : *root->getSequence()) - { - TIntermFunctionDefinition *definition = node->getAsFunctionDefinition(); - if (definition != nullptr && NeedsReturnStatement(definition, &returnType)) - { - TIntermBranch *branch = new TIntermBranch(EOpReturn, CreateZeroNode(returnType)); - - TIntermBlock *bodyNode = definition->getBody(); - bodyNode->getSequence()->push_back(branch); - } - } -} - -} // namespace sh |