diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-02-01 04:51:17 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-02-01 04:51:17 +0000 |
commit | 91766fe066efe6e0969ba805a2e3726a70ed34a3 (patch) | |
tree | 4341aed84ba24607ccb4c8426dfd695b2e484abb /include/llvm/Constants.h | |
parent | de5e5ec3045a73a06b1054417f9ac6c02929e9ce (diff) | |
download | external_llvm-91766fe066efe6e0969ba805a2e3726a70ed34a3.zip external_llvm-91766fe066efe6e0969ba805a2e3726a70ed34a3.tar.gz external_llvm-91766fe066efe6e0969ba805a2e3726a70ed34a3.tar.bz2 |
Revert Chris' commits up to r149348 that started causing VMCoreTests unit test to fail.
These are:
r149348
r149351
r149352
r149354
r149356
r149357
r149361
r149362
r149364
r149365
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149470 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Constants.h')
-rw-r--r-- | include/llvm/Constants.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/llvm/Constants.h b/include/llvm/Constants.h index a4723d3..43f625a 100644 --- a/include/llvm/Constants.h +++ b/include/llvm/Constants.h @@ -352,6 +352,17 @@ public: // ConstantArray accessors static Constant *get(ArrayType *T, ArrayRef<Constant*> V); + /// This method constructs a ConstantArray and initializes it with a text + /// string. The default behavior (AddNull==true) causes a null terminator to + /// be placed at the end of the array. This effectively increases the length + /// of the array by one (you've been warned). However, in some situations + /// this is not desired so if AddNull==false then the string is copied without + /// null termination. + + // FIXME Remove this. + static Constant *get(LLVMContext &Context, StringRef Initializer, + bool AddNull = true); + /// Transparently provide more efficient getOperand methods. DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Constant); @@ -362,6 +373,31 @@ public: return reinterpret_cast<ArrayType*>(Value::getType()); } + // FIXME: String methods will eventually be removed. + + + /// isString - This method returns true if the array is an array of i8 and + /// the elements of the array are all ConstantInt's. + bool isString() const; + + /// isCString - This method returns true if the array is a string (see + /// @verbatim + /// isString) and it ends in a null byte \0 and does not contains any other + /// @endverbatim + /// null bytes except its terminator. + bool isCString() const; + + /// getAsString - If this array is isString(), then this method converts the + /// array to an std::string and returns it. Otherwise, it asserts out. + /// + std::string getAsString() const; + + /// getAsCString - If this array is isCString(), then this method converts the + /// array (without the trailing null byte) to an std::string and returns it. + /// Otherwise, it asserts out. + /// + std::string getAsCString() const; + virtual void destroyConstant(); virtual void replaceUsesOfWithOnConstant(Value *From, Value *To, Use *U); |