mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
Add isCString() - returns true if a ConstantArray is a CString.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31201 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -334,6 +334,11 @@ public:
|
|||||||
/// ubyte, and if the elements of the array are all ConstantInt's.
|
/// ubyte, and if the elements of the array are all ConstantInt's.
|
||||||
bool isString() const;
|
bool isString() const;
|
||||||
|
|
||||||
|
/// isCString - This method returns true if the array is a string (see
|
||||||
|
/// isString) and it ends in a null byte \0 and does not contains any other
|
||||||
|
/// null bytes except its terminator.
|
||||||
|
bool isCString() const;
|
||||||
|
|
||||||
/// getAsString - If this array is isString(), then this method converts the
|
/// getAsString - If this array is isString(), then this method converts the
|
||||||
/// array to an std::string and returns it. Otherwise, it asserts out.
|
/// array to an std::string and returns it. Otherwise, it asserts out.
|
||||||
///
|
///
|
||||||
|
|||||||
@@ -1073,6 +1073,19 @@ bool ConstantArray::isString() const {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// isCString - This method returns true if the array is a string (see
|
||||||
|
/// isString) and it ends in a null byte \0 and does not contains any other
|
||||||
|
/// null bytes except its terminator.
|
||||||
|
bool ConstantArray::isCString() const {
|
||||||
|
if (!isString()) return false;
|
||||||
|
// This is safe because a ConstantArray cannot be a zero array.
|
||||||
|
for (unsigned i = 0, e = getNumOperands()-1; i != e; ++i)
|
||||||
|
if (cast<ConstantInt>(getOperand(i))->getZExtValue() == 0)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// getAsString - If the sub-element type of this array is either sbyte or ubyte,
|
// getAsString - If the sub-element type of this array is either sbyte or ubyte,
|
||||||
// then this method converts the array to an std::string and returns it.
|
// then this method converts the array to an std::string and returns it.
|
||||||
// Otherwise, it asserts out.
|
// Otherwise, it asserts out.
|
||||||
|
|||||||
Reference in New Issue
Block a user