diff options
author | Chris Lattner <sabre@nondot.org> | 2001-11-27 00:03:19 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2001-11-27 00:03:19 +0000 |
commit | cee8f9ae67104576b2028125b56e9ba4856a1d66 (patch) | |
tree | c09d4ff10492acc211b36238768e14ccfd32d750 /support/lib/Support/StringExtras.cpp | |
parent | 360e17eaf1a2abda82b02235dc57d26d8f83c937 (diff) |
Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.
Move files and fix #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1400 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'support/lib/Support/StringExtras.cpp')
-rw-r--r-- | support/lib/Support/StringExtras.cpp | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/support/lib/Support/StringExtras.cpp b/support/lib/Support/StringExtras.cpp deleted file mode 100644 index 2229df049a..0000000000 --- a/support/lib/Support/StringExtras.cpp +++ /dev/null @@ -1,66 +0,0 @@ - - -#include "llvm/Support/StringExtras.h" -#include "llvm/ConstPoolVals.h" -#include "llvm/DerivedTypes.h" - -// Can we treat the specified array as a string? Only if it is an array of -// ubytes or non-negative sbytes. -// -bool isStringCompatible(ConstPoolArray *CPA) { - const Type *ETy = cast<ArrayType>(CPA->getType())->getElementType(); - if (ETy == Type::UByteTy) return true; - if (ETy != Type::SByteTy) return false; - - for (unsigned i = 0; i < CPA->getNumOperands(); ++i) - if (cast<ConstPoolSInt>(CPA->getOperand(i))->getValue() < 0) - return false; - - return true; -} - -// toOctal - Convert the low order bits of X into an octal letter -static inline char toOctal(int X) { - return (X&7)+'0'; -} - -// getAsCString - Return the specified array as a C compatible string, only if -// the predicate isStringCompatible is true. -// -string getAsCString(ConstPoolArray *CPA) { - if (isStringCompatible(CPA)) { - string Result; - const Type *ETy = cast<ArrayType>(CPA->getType())->getElementType(); - Result = "\""; - for (unsigned i = 0; i < CPA->getNumOperands(); ++i) { - unsigned char C = (ETy == Type::SByteTy) ? - (unsigned char)cast<ConstPoolSInt>(CPA->getOperand(i))->getValue() : - (unsigned char)cast<ConstPoolUInt>(CPA->getOperand(i))->getValue(); - - if (isprint(C)) { - Result += C; - } else { - switch(C) { - case '\a': Result += "\\a"; break; - case '\b': Result += "\\b"; break; - case '\f': Result += "\\f"; break; - case '\n': Result += "\\n"; break; - case '\r': Result += "\\r"; break; - case '\t': Result += "\\t"; break; - case '\v': Result += "\\v"; break; - default: - Result += '\\'; - Result += toOctal(C >> 6); - Result += toOctal(C >> 3); - Result += toOctal(C >> 0); - break; - } - } - } - Result += "\""; - - return Result; - } else { - return CPA->getStrValue(); - } -} |