diff options
Diffstat (limited to 'llvm/lib/VMCore/Constants.cpp')
-rw-r--r-- | llvm/lib/VMCore/Constants.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/llvm/lib/VMCore/Constants.cpp b/llvm/lib/VMCore/Constants.cpp index 935c2938c22..7bbbdb32023 100644 --- a/llvm/lib/VMCore/Constants.cpp +++ b/llvm/lib/VMCore/Constants.cpp @@ -601,15 +601,12 @@ ConstantArray *ConstantArray::get(const std::string &Str) { // Otherwise, it asserts out. // std::string ConstantArray::getAsString() const { + assert((getType()->getElementType() == Type::UByteTy || + getType()->getElementType() == Type::SByteTy) && "Not a string!"); + std::string Result; - if (getType()->getElementType() == Type::SByteTy) - for (unsigned i = 0, e = getNumOperands(); i != e; ++i) - Result += (char)cast<ConstantSInt>(getOperand(i))->getValue(); - else { - assert(getType()->getElementType() == Type::UByteTy && "Not a string!"); - for (unsigned i = 0, e = getNumOperands(); i != e; ++i) - Result += (char)cast<ConstantUInt>(getOperand(i))->getValue(); - } + for (unsigned i = 0, e = getNumOperands(); i != e; ++i) + Result += (char)cast<ConstantInt>(getOperand(i))->getRawValue(); return Result; } |