diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index 7edbfbcefaf..d40a8706d44 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -1638,7 +1638,7 @@ MemoryInst : MALLOC Types { if (!isa($2->get())) ThrowException("Can't load from nonpointer type: " + (*$2)->getDescription()); - if (LoadInst::getIndexedType(*$2, *$4) == 0) + if (GetElementPtrInst::getIndexedType(*$2, *$4) == 0) ThrowException("Invalid indices for load instruction!"); Value *Src = getVal(*$2, $3); @@ -1661,7 +1661,7 @@ MemoryInst : MALLOC Types { if (!isa($4->get())) ThrowException("Can't store to a nonpointer type: " + (*$4)->getDescription()); - const Type *ElTy = StoreInst::getIndexedType(*$4, *$6); + const Type *ElTy = GetElementPtrInst::getIndexedType(*$4, *$6); if (ElTy == 0) ThrowException("Can't store into that field list!"); if (ElTy != $2->getType()) diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 910fde6a8bb..eece0c9cedc 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -847,10 +847,8 @@ void CWriter::printIndexingExpression(Value *Ptr, User::op_iterator I, } else { // Performing array indexing. Just skip the 0 ++I; } - } else if (HasImplicitAddress) { - } - + for (; I != E; ++I) if ((*I)->getType() == Type::UIntTy) { Out << "["; @@ -862,11 +860,13 @@ void CWriter::printIndexingExpression(Value *Ptr, User::op_iterator I, } void CWriter::visitLoadInst(LoadInst &I) { - printIndexingExpression(I.getPointerOperand(), I.idx_begin(), I.idx_end()); + Out << "*"; + writeOperand(I.getOperand(0)); } void CWriter::visitStoreInst(StoreInst &I) { - printIndexingExpression(I.getPointerOperand(), I.idx_begin(), I.idx_end()); + Out << "*"; + writeOperand(I.getPointerOperand()); Out << " = "; writeOperand(I.getOperand(0)); } diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp index 910fde6a8bb..eece0c9cedc 100644 --- a/lib/Target/CBackend/Writer.cpp +++ b/lib/Target/CBackend/Writer.cpp @@ -847,10 +847,8 @@ void CWriter::printIndexingExpression(Value *Ptr, User::op_iterator I, } else { // Performing array indexing. Just skip the 0 ++I; } - } else if (HasImplicitAddress) { - } - + for (; I != E; ++I) if ((*I)->getType() == Type::UIntTy) { Out << "["; @@ -862,11 +860,13 @@ void CWriter::printIndexingExpression(Value *Ptr, User::op_iterator I, } void CWriter::visitLoadInst(LoadInst &I) { - printIndexingExpression(I.getPointerOperand(), I.idx_begin(), I.idx_end()); + Out << "*"; + writeOperand(I.getOperand(0)); } void CWriter::visitStoreInst(StoreInst &I) { - printIndexingExpression(I.getPointerOperand(), I.idx_begin(), I.idx_end()); + Out << "*"; + writeOperand(I.getPointerOperand()); Out << " = "; writeOperand(I.getOperand(0)); }