From: Chris Lattner Date: Sat, 22 Sep 2007 20:16:48 +0000 (+0000) Subject: Fix PR1679, by printing GEP indices as signed values instead of unsigned. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=96b207c380569c61d3a9edb6ea8cd5fd086060c5;p=oota-llvm.git Fix PR1679, by printing GEP indices as signed values instead of unsigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42239 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 294f97529bd..bc085241d05 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -1238,6 +1238,7 @@ void CWriter::writeOperandWithCast(Value* Operand, unsigned Opcode) { shouldCast = true; castIsSigned = false; break; + case Instruction::GetElementPtr: case Instruction::AShr: case Instruction::SDiv: case Instruction::SRem: // Cast to signed first @@ -2859,7 +2860,7 @@ void CWriter::printIndexingExpression(Value *Ptr, gep_type_iterator I, Out << ".field" << cast(I.getOperand())->getZExtValue(); } else { Out << '['; - writeOperand(I.getOperand()); + writeOperandWithCast(I.getOperand(), Instruction::GetElementPtr); Out << ']'; } }