diff options
| author | Nick Hildenbrandt <hldnbrnd@uiuc.edu> | 2002-09-25 20:29:26 +0000 |
|---|---|---|
| committer | Nick Hildenbrandt <hldnbrnd@uiuc.edu> | 2002-09-25 20:29:26 +0000 |
| commit | 88e87783b8e65bc608c2e49f6d82162bb27892df (patch) | |
| tree | efeaecbff32a9b1f75e0bd3b12235589d3572936 /llvm/lib/CWriter/Writer.cpp | |
| parent | 7a6ce5a28cc8758d02ae24dcb0e3c6575bf994a9 (diff) | |
| download | bcm5719-llvm-88e87783b8e65bc608c2e49f6d82162bb27892df.tar.gz bcm5719-llvm-88e87783b8e65bc608c2e49f6d82162bb27892df.zip | |
Strings now handled correctly.
llvm-svn: 3920
Diffstat (limited to 'llvm/lib/CWriter/Writer.cpp')
| -rw-r--r-- | llvm/lib/CWriter/Writer.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/llvm/lib/CWriter/Writer.cpp b/llvm/lib/CWriter/Writer.cpp index 3b8c67d45b1..e54d4575125 100644 --- a/llvm/lib/CWriter/Writer.cpp +++ b/llvm/lib/CWriter/Writer.cpp @@ -985,18 +985,23 @@ void CWriter::printIndexingExpression(Value *Ptr, User::op_iterator I, writeOperandInternal(Ptr); - if (HasImplicitAddress && (!CI || !CI->isNullValue())) + if (HasImplicitAddress && (!CI || !CI->isNullValue())) { Out << ")"; + HasImplicitAddress = false; // HIA is only true if we haven't addressed yet + } + + assert(!HasImplicitAddress || (CI && CI->isNullValue()) && + "Can only have implicit address with direct accessing"); - // Print out the -> operator if possible... - if (CI && CI->isNullValue() && I+1 != E) { + if (HasImplicitAddress) { + ++I; + } else if (CI && CI->isNullValue() && I+1 != E) { + // Print out the -> operator if possible... if ((*(I+1))->getType() == Type::UByteTy) { Out << (HasImplicitAddress ? "." : "->"); Out << "field" << cast<ConstantUInt>(*(I+1))->getValue(); I += 2; - } else { // First array index of 0: Just skip it - ++I; - } + } } for (; I != E; ++I) @@ -1015,14 +1020,14 @@ void CWriter::visitLoadInst(LoadInst &I) { } void CWriter::visitStoreInst(StoreInst &I) { - Out << "*"; + //Out << "*"; writeOperand(I.getPointerOperand()); Out << " = "; writeOperand(I.getOperand(0)); } void CWriter::visitGetElementPtrInst(GetElementPtrInst &I) { - Out << "&"; + //Out << "&"; printIndexingExpression(I.getPointerOperand(), I.idx_begin(), I.idx_end()); } |

