Add symbol table function to get TFunction for a built-in op
Built-in function parameter qualifiers are stored in the symbol table.
Some AST traversers need the qualifier information for ops to
determine whether a node is being written to. Add an utility function
that maps a TIntermAggregate node to a symbol table entry, so that the
traversers can get to this information in a convenient way.
This will be necessary for adding more built-ins that have out
parameters from ESSL 3.10.
BUG=angleproject:1730
TEST=angle_unittests
Change-Id: I4bc622d70b2326a04cc858ff1258c22320c590dc
Reviewed-on: https://chromium-review.googlesource.com/431109
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/compiler/translator/SymbolTable.h b/src/compiler/translator/SymbolTable.h
index 88933d1..2a4cfff 100644
--- a/src/compiler/translator/SymbolTable.h
+++ b/src/compiler/translator/SymbolTable.h
@@ -41,6 +41,8 @@
namespace sh
{
+class TIntermAggregate;
+
// Symbol base class. (Can build functions or variables out of these...)
class TSymbol : angle::NonCopyable
{
@@ -424,6 +426,10 @@
TSymbol *findBuiltIn(const TString &name, int shaderVersion) const;
+ // Helper front-end for regular findBuiltIn that constructs the mangled function name from
+ // callNode.
+ TFunction *findBuiltInOp(TIntermAggregate *callNode, int shaderVersion) const;
+
TSymbolTableLevel *getOuterLevel()
{
assert(currentLevel() >= 1);