From 96b207c380569c61d3a9edb6ea8cd5fd086060c5 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 22 Sep 2007 20:16:48 +0000 Subject: 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 --- lib/Target/CBackend/CBackend.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 294f975..bc08524 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 << ']'; } } -- cgit v1.1