From 902a7b529820e6a0aa85f98f21afaeb1805a22f8 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sun, 19 Aug 2012 10:31:50 +0000 Subject: Vendor import of llvm trunk r162107: http://llvm.org/svn/llvm-project/llvm/trunk@162107 --- lib/Analysis/MemoryBuiltins.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/Analysis/MemoryBuiltins.cpp') diff --git a/lib/Analysis/MemoryBuiltins.cpp b/lib/Analysis/MemoryBuiltins.cpp index c0cc27b6ec5ea..e77d2ff9e44ec 100644 --- a/lib/Analysis/MemoryBuiltins.cpp +++ b/lib/Analysis/MemoryBuiltins.cpp @@ -473,6 +473,10 @@ ObjectSizeOffsetVisitor::visitExtractValueInst(ExtractValueInst&) { } SizeOffsetType ObjectSizeOffsetVisitor::visitGEPOperator(GEPOperator &GEP) { + // Ignore self-referencing GEPs, they can occur in unreachable code. + if (&GEP == GEP.getPointerOperand()) + return unknown(); + SizeOffsetType PtrData = compute(GEP.getPointerOperand()); if (!bothKnown(PtrData) || !GEP.hasAllConstantIndices()) return unknown(); -- cgit v1.2.3