Keep track of the index name of excessive loops.

TRAC #21167
ISSUE=338
Signed-off-by: Daniel Koch
Author: Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/trunk@1210 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/compiler/OutputHLSL.cpp b/src/compiler/OutputHLSL.cpp
index c52f61c..e33406b 100644
--- a/src/compiler/OutputHLSL.cpp
+++ b/src/compiler/OutputHLSL.cpp
@@ -87,6 +87,8 @@
     mContainsLoopDiscontinuity = false;
     mOutputLod0Function = false;
     mInsideDiscontinuousLoop = false;
+
+    mExcessiveLoopIndex = NULL;
 }
 
 OutputHLSL::~OutputHLSL()
@@ -2052,6 +2054,9 @@
                 return false;   // Not an excessive loop
             }
 
+            TIntermSymbol *restoreIndex = mExcessiveLoopIndex;
+            mExcessiveLoopIndex = index;
+
             out << "{int ";
             index->traverse(this);
             out << ";\n";
@@ -2095,6 +2100,8 @@
             
             out << "}";
 
+            mExcessiveLoopIndex = restoreIndex;
+
             return true;
         }
         else UNIMPLEMENTED();
diff --git a/src/compiler/OutputHLSL.h b/src/compiler/OutputHLSL.h
index ea28a3c..dc843fb 100644
--- a/src/compiler/OutputHLSL.h
+++ b/src/compiler/OutputHLSL.h
@@ -144,6 +144,8 @@
     bool mContainsLoopDiscontinuity;
     bool mOutputLod0Function;
     bool mInsideDiscontinuousLoop;
+
+    TIntermSymbol *mExcessiveLoopIndex;
 };
 }