[llvm-commits] CVS: llvm/include/llvm/Bytecode/Archive.h
Reid Spencer
reid at x10sys.com
Fri Jul 7 13:57:05 PDT 2006
Changes in directory llvm/include/llvm/Bytecode:
Archive.h updated: 1.15 -> 1.16
---
Log message:
Finish removal of EH usage from the Archive library. The REQUIRES_EH flag
in lib/Bytecode/Archive/Makefile is now removed. One small step closer to
a smaller LLVM.
---
Diffs of the changes: (+27 -12)
Archive.h | 39 +++++++++++++++++++++++++++------------
1 files changed, 27 insertions(+), 12 deletions(-)
Index: llvm/include/llvm/Bytecode/Archive.h
diff -u llvm/include/llvm/Bytecode/Archive.h:1.15 llvm/include/llvm/Bytecode/Archive.h:1.16
--- llvm/include/llvm/Bytecode/Archive.h:1.15 Fri Jul 7 14:09:13 2006
+++ llvm/include/llvm/Bytecode/Archive.h Fri Jul 7 15:56:50 2006
@@ -307,8 +307,8 @@
/// printing).
/// @brief Open and load an archive file
static Archive* OpenAndLoad(
- const sys::Path& filePath, ///< The file path to open and load
- std::string* ErrorMessage = 0 ///< An optional error string
+ const sys::Path& filePath, ///< The file path to open and load
+ std::string* ErrorMessage ///< An optional error string
);
/// This method opens an existing archive file from \p Filename and reads in
@@ -398,7 +398,8 @@
/// contain a module that defines the \p symbol.
/// @brief Look up a module by symbol name.
ModuleProvider* findModuleDefiningSymbol(
- const std::string& symbol ///< Symbol to be sought
+ const std::string& symbol, ///< Symbol to be sought
+ std::string* ErrMessage ///< Error message storage, if non-zero
);
/// This method is similar to findModuleDefiningSymbol but allows lookup of
@@ -410,9 +411,10 @@
/// symbols to ensure they are not re-searched on a subsequent call. If
/// you need to retain the list of symbols, make a copy.
/// @brief Look up multiple symbols in the archive.
- void findModulesDefiningSymbols(
+ bool findModulesDefiningSymbols(
std::set<std::string>& symbols, ///< Symbols to be sought
- std::set<ModuleProvider*>& modules ///< The modules matching \p symbols
+ std::set<ModuleProvider*>& modules, ///< The modules matching \p symbols
+ std::string* ErrMessage ///< Error msg storage, if non-zero
);
/// This method determines whether the archive is a properly formed llvm
@@ -445,7 +447,7 @@
bool CreateSymbolTable=false, ///< Create Symbol table
bool TruncateNames=false, ///< Truncate the filename to 15 chars
bool Compress=false, ///< Compress files
- std::string* error = 0 ///< If non-null, where error msg is set
+ std::string* ErrMessage=0 ///< If non-null, where error msg is set
);
/// This method adds a new file to the archive. The \p filename is examined
@@ -465,20 +467,33 @@
/// into memory.
Archive(const sys::Path& filename, bool map = false );
+ /// @param error Set to address of a std::string to get error messages
+ /// @returns false on error
/// @brief Parse the symbol table at \p data.
- void parseSymbolTable(const void* data,unsigned len);
+ bool parseSymbolTable(const void* data,unsigned len,std::string* error);
+ /// @returns A fully populated ArchiveMember or 0 if an error occurred.
/// @brief Parse the header of a member starting at \p At
- ArchiveMember* parseMemberHeader(const char*&At,const char*End);
+ ArchiveMember* parseMemberHeader(
+ const char*&At, ///< The pointer to the location we're parsing
+ const char*End, ///< The pointer to the end of the archive
+ std::string* error ///< Optional error message catcher
+ );
+ /// @param error Set to address of a std::string to get error messages
+ /// @returns false on error
/// @brief Check that the archive signature is correct
- void checkSignature();
+ bool checkSignature(std::string* ErrMessage);
+ /// @param error Set to address of a std::string to get error messages
+ /// @returns false on error
/// @brief Load the entire archive.
- void loadArchive();
+ bool loadArchive(std::string* ErrMessage);
+ /// @param error Set to address of a std::string to get error messages
+ /// @returns false on error
/// @brief Load just the symbol table.
- void loadSymbolTable();
+ bool loadSymbolTable(std::string* ErrMessage);
/// @brief Write the symbol table to an ofstream.
void writeSymbolTable(std::ofstream& ARFile);
@@ -494,7 +509,7 @@
bool CreateSymbolTable, ///< Should symbol table be created?
bool TruncateNames, ///< Should names be truncated to 11 chars?
bool ShouldCompress, ///< Should the member be compressed?
- std::string* error = 0 ///< If non-null, place were error msg is set
+ std::string* ErrMessage ///< If non-null, place were error msg is set
);
/// @brief Fill in an ArchiveMemberHeader from ArchiveMember.
More information about the llvm-commits
mailing list