1*8975f5c5SAndroid Build Coastguard Worker // 2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2016 The ANGLE Project Authors. All rights reserved. 3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file. 5*8975f5c5SAndroid Build Coastguard Worker // 6*8975f5c5SAndroid Build Coastguard Worker // ValidateMaxParameters checks if function definitions have more than a set number of parameters. 7*8975f5c5SAndroid Build Coastguard Worker 8*8975f5c5SAndroid Build Coastguard Worker #include "compiler/translator/ValidateMaxParameters.h" 9*8975f5c5SAndroid Build Coastguard Worker 10*8975f5c5SAndroid Build Coastguard Worker #include "compiler/translator/IntermNode.h" 11*8975f5c5SAndroid Build Coastguard Worker #include "compiler/translator/Symbol.h" 12*8975f5c5SAndroid Build Coastguard Worker 13*8975f5c5SAndroid Build Coastguard Worker namespace sh 14*8975f5c5SAndroid Build Coastguard Worker { 15*8975f5c5SAndroid Build Coastguard Worker ValidateMaxParameters(TIntermBlock * root,unsigned int maxParameters)16*8975f5c5SAndroid Build Coastguard Workerbool ValidateMaxParameters(TIntermBlock *root, unsigned int maxParameters) 17*8975f5c5SAndroid Build Coastguard Worker { 18*8975f5c5SAndroid Build Coastguard Worker for (TIntermNode *node : *root->getSequence()) 19*8975f5c5SAndroid Build Coastguard Worker { 20*8975f5c5SAndroid Build Coastguard Worker TIntermFunctionDefinition *definition = node->getAsFunctionDefinition(); 21*8975f5c5SAndroid Build Coastguard Worker if (definition != nullptr && 22*8975f5c5SAndroid Build Coastguard Worker definition->getFunctionPrototype()->getFunction()->getParamCount() > maxParameters) 23*8975f5c5SAndroid Build Coastguard Worker { 24*8975f5c5SAndroid Build Coastguard Worker return false; 25*8975f5c5SAndroid Build Coastguard Worker } 26*8975f5c5SAndroid Build Coastguard Worker } 27*8975f5c5SAndroid Build Coastguard Worker return true; 28*8975f5c5SAndroid Build Coastguard Worker } 29*8975f5c5SAndroid Build Coastguard Worker 30*8975f5c5SAndroid Build Coastguard Worker } // namespace sh 31