LCOV - code coverage report
Current view: directory - gfx/angle/src/compiler - QualifierAlive.cpp (source / functions) Found Hit Coverage
Test: app.info Lines: 16 0 0.0 %
Date: 2012-06-02 Functions: 5 0 0.0 %

       1                 : //
       2                 : // Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
       3                 : // Use of this source code is governed by a BSD-style license that can be
       4                 : // found in the LICENSE file.
       5                 : //
       6                 : 
       7                 : #include "compiler/intermediate.h"
       8                 : 
       9                 : class TAliveTraverser : public TIntermTraverser {
      10                 : public:
      11               0 :     TAliveTraverser(TQualifier q) : TIntermTraverser(true, false, false, true), found(false), qualifier(q)
      12                 :     {
      13               0 :     }
      14                 : 
      15               0 :         bool wasFound() { return found; }
      16                 : 
      17                 : protected:
      18                 :     bool found;
      19                 :     TQualifier qualifier;
      20                 : 
      21                 :     void visitSymbol(TIntermSymbol*);
      22                 :     bool visitSelection(Visit, TIntermSelection*);
      23                 : };
      24                 : 
      25                 : //
      26                 : // Report whether or not a variable of the given qualifier type
      27                 : // is guaranteed written.  Not always possible to determine if
      28                 : // it is written conditionally.
      29                 : //
      30                 : // ?? It does not do this well yet, this is just a place holder
      31                 : // that simply determines if it was reference at all, anywhere.
      32                 : //
      33               0 : bool QualifierWritten(TIntermNode* node, TQualifier qualifier)
      34                 : {
      35               0 :     TAliveTraverser it(qualifier);
      36                 : 
      37               0 :     if (node)
      38               0 :         node->traverse(&it);
      39                 : 
      40               0 :     return it.wasFound();
      41                 : }
      42                 : 
      43               0 : void TAliveTraverser::visitSymbol(TIntermSymbol* node)
      44                 : {
      45                 :     //
      46                 :     // If it's what we're looking for, record it.
      47                 :     //
      48               0 :     if (node->getQualifier() == qualifier)
      49               0 :         found = true;
      50               0 : }
      51                 : 
      52               0 : bool TAliveTraverser::visitSelection(Visit preVisit, TIntermSelection* node)
      53                 : {
      54               0 :     if (wasFound())
      55               0 :         return false;
      56                 : 
      57               0 :     return true;
      58                 : }

Generated by: LCOV version 1.7