diff options
Diffstat (limited to 'lib/Bitcode/Reader/BitcodeReader.h')
| -rw-r--r-- | lib/Bitcode/Reader/BitcodeReader.h | 28 | 
1 files changed, 12 insertions, 16 deletions
| diff --git a/lib/Bitcode/Reader/BitcodeReader.h b/lib/Bitcode/Reader/BitcodeReader.h index f8fc079c73d9..1b3bf1a1854a 100644 --- a/lib/Bitcode/Reader/BitcodeReader.h +++ b/lib/Bitcode/Reader/BitcodeReader.h @@ -44,9 +44,9 @@ class BitcodeReaderValueList {    /// number that holds the resolved value.    typedef std::vector<std::pair<Constant*, unsigned> > ResolveConstantsTy;    ResolveConstantsTy ResolveConstants; -  LLVMContext& Context; +  LLVMContext &Context;  public: -  BitcodeReaderValueList(LLVMContext& C) : Context(C) {} +  BitcodeReaderValueList(LLVMContext &C) : Context(C) {}    ~BitcodeReaderValueList() {      assert(ResolveConstants.empty() && "Constants not resolved?");    } @@ -131,7 +131,7 @@ class BitcodeReader : public GVMaterializer {    const char *ErrorString; -  std::vector<PATypeHolder> TypeList; +  std::vector<Type*> TypeList;    BitcodeReaderValueList ValueList;    BitcodeReaderMDValueList MDValueList;    SmallVector<Instruction *, 64> InstructionList; @@ -174,17 +174,10 @@ class BitcodeReader : public GVMaterializer {    typedef std::pair<unsigned, GlobalVariable*> BlockAddrRefTy;    DenseMap<Function*, std::vector<BlockAddrRefTy> > BlockAddrFwdRefs; -  /// LLVM2_7MetadataDetected - True if metadata produced by LLVM 2.7 or -  /// earlier was detected, in which case we behave slightly differently, -  /// for compatibility. -  /// FIXME: Remove in LLVM 3.0. -  bool LLVM2_7MetadataDetected; -    public:    explicit BitcodeReader(MemoryBuffer *buffer, LLVMContext &C)      : Context(C), TheModule(0), Buffer(buffer), BufferOwned(false), -      ErrorString(0), ValueList(C), MDValueList(C), -      LLVM2_7MetadataDetected(false) { +      ErrorString(0), ValueList(C), MDValueList(C) {      HasReversedFunctionsWithBodies = false;    }    ~BitcodeReader() { @@ -217,12 +210,12 @@ public:    /// @returns true if an error occurred.    bool ParseTriple(std::string &Triple);  private: -  const Type *getTypeByID(unsigned ID, bool isTypeTable = false); +  Type *getTypeByID(unsigned ID); +  Type *getTypeByIDOrNull(unsigned ID);    Value *getFnValueByID(unsigned ID, const Type *Ty) { -    if (Ty == Type::getMetadataTy(Context)) +    if (Ty && Ty->isMetadataTy())        return MDValueList.getValueFwdRef(ID); -    else -      return ValueList.getValueFwdRef(ID, Ty); +    return ValueList.getValueFwdRef(ID, Ty);    }    BasicBlock *getBasicBlock(unsigned ID) const {      if (ID >= FunctionBBs.size()) return 0; // Invalid ID @@ -266,7 +259,10 @@ private:    bool ParseModule();    bool ParseAttributeBlock();    bool ParseTypeTable(); -  bool ParseTypeSymbolTable(); +  bool ParseOldTypeTable();         // FIXME: Remove in LLVM 3.1 +  bool ParseTypeTableBody(); + +  bool ParseOldTypeSymbolTable();   // FIXME: Remove in LLVM 3.1    bool ParseValueSymbolTable();    bool ParseConstants();    bool RememberAndSkipFunctionBody(); | 
