For PR797:
Remove exception handling from the bytecode archiver and adjust the llvm-ar
tool to accommodate the new interfaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29866 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Archive/ArchiveReader.cpp b/lib/Bytecode/Archive/ArchiveReader.cpp
index c8dd17c..38aa072 100644
--- a/lib/Bytecode/Archive/ArchiveReader.cpp
+++ b/lib/Bytecode/Archive/ArchiveReader.cpp
@@ -330,7 +330,9 @@
 Archive*
 Archive::OpenAndLoad(const sys::Path& file, std::string* ErrorMessage) 
 {
-  std::auto_ptr<Archive> result ( new Archive(file, true));
+  std::auto_ptr<Archive> result ( new Archive(file));
+  if (result->mapToMemory(ErrorMessage))
+    return 0;
   if (!result->loadArchive(ErrorMessage))
     return 0;
   return result.release();
@@ -437,7 +439,9 @@
 // Open the archive and load just the symbol tables
 Archive*
 Archive::OpenAndLoadSymbols(const sys::Path& file, std::string* ErrorMessage) {
-  std::auto_ptr<Archive> result ( new Archive(file, true) );
+  std::auto_ptr<Archive> result ( new Archive(file) );
+  if (result->mapToMemory(ErrorMessage))
+    return 0;
   if (!result->loadSymbolTable(ErrorMessage))
     return 0;
   return result.release();