diff --git a/include/llvm/Bytecode/Archive.h b/include/llvm/Bytecode/Archive.h index 4ceb951a924..7f1333e8bcb 100644 --- a/include/llvm/Bytecode/Archive.h +++ b/include/llvm/Bytecode/Archive.h @@ -135,16 +135,15 @@ class Archive { /// returns the associated module that defines that symbol. This method can /// be called as many times as necessary. This is handy for linking the /// archive into another module based on unresolved symbols. Note that the - /// ModuleProvider returned by this accessor is constant and it may refer - /// to the same ModuleProvider object returned by this accessor in a - /// previous call (because the associated module defines both symbols). To - /// use the returned ModuleProvider* you must make a copy and call the - /// materializeModule method on the copy. + /// ModuleProvider returned by this accessor should not be deleted by the + /// caller. It is managed internally by the Archive class. It is possible + /// that multiple calls to this accessor will return the same ModuleProvider + /// instance because the associated module defines multiple symbols. /// @throws std::string if an error occurs /// @returns The ModuleProvider* found or null if the archive does not /// contain a module that defines the \p symbol. /// @brief Look up a module by symbol name. - const ModuleProvider* findModuleContainingSymbol( + ModuleProvider* findModuleContainingSymbol( const std::string& symbol ///< Symbol to be sought ) const; @@ -245,6 +244,12 @@ class Archive { ); /// @} + /// @name Data + /// @{ + private: + class ArchiveInternals; + ArchiveInternals* impl; ///< Implementation class + /// @} }; } // End llvm namespace