From 26e25b3bf0c4f423a5a06263ea060643bc788909 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Tue, 6 Nov 2007 19:49:16 +0000 Subject: Added support for processing abbreviations in the Deserializer. Added some #ifdef-controlled messages for debugging backpatching. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43771 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Bitcode/Reader/Deserialize.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'lib/Bitcode/Reader') diff --git a/lib/Bitcode/Reader/Deserialize.cpp b/lib/Bitcode/Reader/Deserialize.cpp index ef4e4f7e00..5642f37fac 100644 --- a/lib/Bitcode/Reader/Deserialize.cpp +++ b/lib/Bitcode/Reader/Deserialize.cpp @@ -13,6 +13,10 @@ #include "llvm/Bitcode/Deserialize.h" +#ifdef DEBUG_BACKPATCH +#include "llvm/Support/Streams.h" +#endif + using namespace llvm; Deserializer::Deserializer(BitstreamReader& stream) @@ -71,6 +75,11 @@ void Deserializer::ReadRecord() { continue; } + if (Code == bitc::DEFINE_ABBREV) { + Stream.ReadAbbrevRecord(); + continue; + } + break; } @@ -136,6 +145,10 @@ void Deserializer::RegisterPtr(unsigned PtrId, const void* Ptr) { assert (!HasFinalPtr(E) && "Pointer already registered."); +#ifdef DEBUG_BACKPATCH + llvm::cerr << "RegisterPtr: " << PtrId << " => " << Ptr << "\n"; +#endif + SetPtr(E,Ptr); } @@ -145,8 +158,12 @@ void Deserializer::ReadUIntPtr(uintptr_t& PtrRef) { if (PtrId == 0) { PtrRef = 0; return; - } - + } + +#ifdef DEBUG_BACKPATCH + llvm::cerr << "ReadUintPtr: " << PtrId << "\n"; +#endif + MapTy::value_type& E = BPatchMap.FindAndConstruct(BPKey(PtrId)); if (HasFinalPtr(E)) -- cgit v1.2.3-70-g09d2