Since we are using a gep_type_iterator, we apparently must get the type
index by using I.getOperand() here. This was failing an assertion on
basically every struct access.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10426 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/ExecutionEngine/Interpreter/Execution.cpp b/lib/ExecutionEngine/Interpreter/Execution.cpp
index 732a485..abade5f 100644
--- a/lib/ExecutionEngine/Interpreter/Execution.cpp
+++ b/lib/ExecutionEngine/Interpreter/Execution.cpp
@@ -706,8 +706,7 @@
     if (const StructType *STy = dyn_cast<StructType>(*I)) {
       const StructLayout *SLO = TD.getStructLayout(STy);
       
-      // Indices must be ubyte constants...
-      const ConstantUInt *CPU = cast<ConstantUInt>(*I);
+      const ConstantUInt *CPU = cast<ConstantUInt>(I.getOperand());
       unsigned Index = CPU->getValue();
       
       Total += SLO->MemberOffsets[Index];