Author: kremenek Date: Wed Oct 31 13:23:21 2007 New Revision: 43565 URL: http://llvm.org/viewvc/llvm-project?rev=43565&view=rev Log: Added Serializer::EmitRef to deal with emitting arbitrary references. Modified Serializer::EmitPtr to handle const pointers.
Modified: llvm/trunk/include/llvm/Bitcode/Serialize.h llvm/trunk/lib/Bitcode/Writer/Serialize.cpp Modified: llvm/trunk/include/llvm/Bitcode/Serialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Serialize.h?rev=43565&r1=43564&r2=43565&view=diff ============================================================================== --- llvm/trunk/include/llvm/Bitcode/Serialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Serialize.h Wed Oct 31 13:23:21 2007 @@ -27,7 +27,7 @@ SmallVector<uint64_t,10> Record; bool inBlock; - typedef DenseMap<void*,unsigned> MapTy; + typedef DenseMap<const void*,unsigned> MapTy; MapTy PtrMap; public: @@ -42,7 +42,10 @@ void EmitCStr(const char* beg, const char* end); void EmitCStr(const char* cstr); - void EmitPtr(void* ptr) { EmitInt(getPtrId(ptr)); } + void EmitPtr(const void* ptr) { EmitInt(getPtrId(ptr)); } + + template <typename T> + void EmitRef(const T& ref) { EmitPtr(&ref); } template <typename T> void EmitOwnedPtr(T* ptr) { @@ -55,7 +58,7 @@ private: void EmitRecord(); inline bool inRecord() { return Record.size() > 0; } - unsigned getPtrId(void* ptr); + unsigned getPtrId(const void* ptr); }; } // end namespace llvm Modified: llvm/trunk/lib/Bitcode/Writer/Serialize.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/Serialize.cpp?rev=43565&r1=43564&r2=43565&view=diff ============================================================================== --- llvm/trunk/lib/Bitcode/Writer/Serialize.cpp (original) +++ llvm/trunk/lib/Bitcode/Writer/Serialize.cpp Wed Oct 31 13:23:21 2007 @@ -57,7 +57,7 @@ EmitCStr(s,s+strlen(s)); } -unsigned Serializer::getPtrId(void* ptr) { +unsigned Serializer::getPtrId(const void* ptr) { if (!ptr) return 0; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits