diff --git a/llvm/lib/Analysis/DataStructure/Local.cpp b/llvm/lib/Analysis/DataStructure/Local.cpp
index 72eee24..f191bb3 100644
--- a/llvm/lib/Analysis/DataStructure/Local.cpp
+++ b/llvm/lib/Analysis/DataStructure/Local.cpp
@@ -1116,8 +1116,17 @@
     const StructLayout *SL = TD.getStructLayout(CS->getType());
     for (unsigned i = 0, e = CS->getNumOperands(); i != e; ++i) {
       DSNode *NHN = NH.getNode();
-      DSNodeHandle NewNH(NHN, NH.getOffset()+(unsigned)SL->MemberOffsets[i]);
-      MergeConstantInitIntoNode(NewNH, cast<Constant>(CS->getOperand(i)));
+      //Some programmers think ending a structure with a [0 x sbyte] is cute
+      //This should be ok as the allocation type should grow this type when
+      //it is merged in if it is bigger.
+      if (SL->MemberOffsets[i] < SL->StructSize) {
+        DSNodeHandle NewNH(NHN, NH.getOffset()+(unsigned)SL->MemberOffsets[i]);
+        MergeConstantInitIntoNode(NewNH, cast<Constant>(CS->getOperand(i)));
+      } else if (SL->MemberOffsets[i] == SL->StructSize) {
+        DEBUG(std::cerr << "Zero size element at end of struct\n");
+      } else {
+        assert(0 && "type was smaller than offsets of of struct layout indicate");
+      }
     }
   } else if (isa<ConstantAggregateZero>(C) || isa<UndefValue>(C)) {
     // Noop
