| // |
| // Copyright (c) 2017 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. |
| // |
| |
| // FindMain.cpp: Find the main() function definition in a given AST. |
| |
| #include "compiler/translator/FindMain.h" |
| |
| #include "compiler/translator/IntermNode.h" |
| |
| namespace sh |
| { |
| |
| TIntermFunctionDefinition *FindMain(TIntermBlock *root) |
| { |
| for (TIntermNode *node : *root->getSequence()) |
| { |
| TIntermFunctionDefinition *nodeFunction = node->getAsFunctionDefinition(); |
| if (nodeFunction != nullptr && nodeFunction->getFunctionSymbolInfo()->isMain()) |
| { |
| return nodeFunction; |
| } |
| } |
| return nullptr; |
| } |
| |
| } // namespace sh |