Changes in directory llvm/include/llvm:
Constants.h updated: 1.129 -> 1.130 --- Log message: Make ConstantInt::getTrue/getFalse be llvm_shutdown safe. --- Diffs of the changes: (+8 -6) Constants.h | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) Index: llvm/include/llvm/Constants.h diff -u llvm/include/llvm/Constants.h:1.129 llvm/include/llvm/Constants.h:1.130 --- llvm/include/llvm/Constants.h:1.129 Mon Feb 19 23:55:46 2007 +++ llvm/include/llvm/Constants.h Tue Feb 20 00:11:36 2007 @@ -40,6 +40,7 @@ /// represents both boolean and integral constants. /// @brief Class for constant integers. class ConstantInt : public Constant { + static ConstantInt *TheTrueVal, *TheFalseVal; protected: uint64_t Val; protected: @@ -73,14 +74,12 @@ /// getTrue/getFalse - Return the singleton true/false values. static inline ConstantInt *getTrue() { - static ConstantInt *T = 0; - if (T) return T; - return T = new ConstantInt(Type::Int1Ty, 1); + if (TheTrueVal) return TheTrueVal; + return CreateTrueFalseVals(true); } static inline ConstantInt *getFalse() { - static ConstantInt *F = 0; - if (F) return F; - return F = new ConstantInt(Type::Int1Ty, 0); + if (TheFalseVal) return TheFalseVal; + return CreateTrueFalseVals(false); } /// Return a ConstantInt with the specified value for the specified type. The @@ -165,6 +164,9 @@ static bool classof(const Value *V) { return V->getValueType() == ConstantIntVal; } + static void ResetTrueFalse() { TheTrueVal = TheFalseVal = 0; } +private: + static ConstantInt *CreateTrueFalseVals(bool WhichOne); }; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits