| // |
| // 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. |
| // |
| // ValidateMaxParameters checks if function definitions have more than a set number of parameters. |
| |
| #ifndef COMPILER_TRANSLATOR_VALIDATEMAXPARAMETERS_H_ |
| #define COMPILER_TRANSLATOR_VALIDATEMAXPARAMETERS_H_ |
| |
| #include "compiler/translator/IntermNode.h" |
| |
| namespace sh |
| { |
| |
| class ValidateMaxParameters : public TIntermTraverser |
| { |
| public: |
| // Returns false if maxParameters is exceeded. |
| static bool validate(TIntermNode *root, unsigned int maxParameters); |
| |
| protected: |
| bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override; |
| |
| private: |
| ValidateMaxParameters(unsigned int maxParameters); |
| |
| unsigned int mMaxParameters; |
| bool mValid; |
| }; |
| |
| } // namespace sh |
| |
| #endif // COMPILER_TRANSLATOR_VALIDATEMAXPARAMETERS_H_ |