|
| void | pushReturnPath (bool returnPath) |
| |
| bool | popReturnPath () |
| |
| void | visitStatementList (const Vector< StatementPtr > &statements) |
| |
| void | visitCodeBlock (CodeBlock *ast, void *args) override |
| |
| void | visitFunctionDeclaration (FunctionDeclaration *ast, void *args) override |
| |
| void | visitUniformBufferDeclaration (UniformBufferDeclaration *ast, void *args) override |
| |
| void | visitBufferDeclarationStatement (BufferDeclarationStatement *ast, void *args) override |
| |
| void | visitSamplerDeclarationStatement (SamplerDeclarationStatement *ast, void *args) override |
| |
| void | visitVarDeclarationStatement (VarDeclarationStatement *ast, void *args) override |
| |
| void | visitAliasDeclarationStatement (AliasDeclarationStatement *ast, void *args) override |
| |
| void | visitBasicDeclarationStatement (BasicDeclarationStatement *ast, void *args) override |
| |
| void | visitNullStatement (NullStatement *ast, void *args) override |
| |
| void | visitCodeBlockStatement (CodeBlockStatement *ast, void *args) override |
| |
| void | visitForLoopStatement (ForLoopStatement *ast, void *args) override |
| |
| void | visitWhileLoopStatement (WhileLoopStatement *ast, void *args) override |
| |
| void | visitDoWhileLoopStatement (DoWhileLoopStatement *ast, void *args) override |
| |
| void | visitIfStatement (IfStatement *ast, void *args) override |
| |
| void | visitElseStatement (ElseStatement *ast, void *args) override |
| |
| void | visitSwitchStatement (SwitchStatement *ast, void *args) override |
| |
| void | visitExpressionStatement (ExpressionStatement *ast, void *args) override |
| |
| void | visitReturnStatement (ReturnStatement *ast, void *args) override |
| |
| void | visitCtrlTransferStatement (CtrlTransferStatement *ast, void *args) override |
| |
| virtual | ~Visitor ()=default |
| |
| virtual void | visitProgram (Program *ast, void *args) |
| |
| virtual void | visitAttribute (Attribute *ast, void *args) |
| |
| virtual void | visitSwitchCase (SwitchCase *ast, void *args) |
| |
| virtual void | visitSamplerValue (SamplerValue *ast, void *args) |
| |
| virtual void | visitRegister (Register *ast, void *args) |
| |
| virtual void | visitPackOffset (PackOffset *ast, void *args) |
| |
| virtual void | visitArrayDimension (ArrayDimension *ast, void *args) |
| |
| virtual void | visitTypeSpecifier (TypeSpecifier *ast, void *args) |
| |
| virtual void | visitVarDeclaration (VarDeclaration *ast, void *args) |
| |
| virtual void | visitBufferDeclaration (BufferDeclaration *ast, void *args) |
| |
| virtual void | visitSamplerDeclaration (SamplerDeclaration *ast, void *args) |
| |
| virtual void | visitStructDeclaration (StructDeclaration *ast, void *args) |
| |
| virtual void | visitAliasDeclaration (AliasDeclaration *ast, void *args) |
| |
| virtual void | visitLayoutStatement (LayoutStatement *ast, void *args) |
| |
| virtual void | visitNullExpression (NullExpression *ast, void *args) |
| |
| virtual void | visitSequenceExpression (SequenceExpression *ast, void *args) |
| |
| virtual void | visitLiteralExpression (LiteralExpression *ast, void *args) |
| |
| virtual void | visitTypeSpecifierExpression (TypeSpecifierExpression *ast, void *args) |
| |
| virtual void | visitTernaryExpression (TernaryExpression *ast, void *args) |
| |
| virtual void | visitBinaryExpression (BinaryExpression *ast, void *args) |
| |
| virtual void | visitUnaryExpression (UnaryExpression *ast, void *args) |
| |
| virtual void | visitPostUnaryExpression (PostUnaryExpression *ast, void *args) |
| |
| virtual void | visitCallExpression (CallExpression *ast, void *args) |
| |
| virtual void | visitBracketExpression (BracketExpression *ast, void *args) |
| |
| virtual void | visitAssignExpression (AssignExpression *ast, void *args) |
| |
| virtual void | visitObjectExpression (ObjectExpression *ast, void *args) |
| |
| virtual void | visitArrayExpression (ArrayExpression *ast, void *args) |
| |
| virtual void | visitCastExpression (CastExpression *ast, void *args) |
| |
| virtual void | visitInitializerExpression (InitializerExpression *ast, void *args) |
| |
| template<typename T > |
| void | visit (const T &ast, void *args=nullptr) |
| |
| template<typename T > |
| void | visit (const Vector< T > &astList, void *args=nullptr) |
| |
Control path analyzer (must implement visitors for all statements).
This helper class for the context analyzer marks all functions where not all control paths return a value (if the function is declared to have a return value). It also marks all statements as dead code, when they appear after a return path. Marks 'FunctionDecl::hasNonReturnControlPath' and 'AST::isDeadCode' flags.