From: Reid Spencer Date: Sun, 13 Feb 2005 07:34:17 +0000 (+0000) Subject: Fix PR506: X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ef11c5e64d8ef35ff833456771eeca0abcdea850;p=oota-llvm.git Fix PR506: * Use error returned from Archive::OpenAndLoad * Make sure only std::string is thrown so it gets caught and printed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20147 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/llvm-ranlib/llvm-ranlib.cpp b/tools/llvm-ranlib/llvm-ranlib.cpp index cc86fba953d..70d5cf8abf9 100644 --- a/tools/llvm-ranlib/llvm-ranlib.cpp +++ b/tools/llvm-ranlib/llvm-ranlib.cpp @@ -64,12 +64,14 @@ int main(int argc, char **argv) { // Make sure it exists, we don't create empty archives if (!ArchivePath.exists()) - throw "Archive file does not exist"; + throw std::string("Archive file does not exist"); - std::auto_ptr AutoArchive(Archive::OpenAndLoad(ArchivePath)); + std::string err_msg; + std::auto_ptr + AutoArchive(Archive::OpenAndLoad(ArchivePath,&err_msg)); Archive* TheArchive = AutoArchive.get(); - - assert(TheArchive && "Unable to instantiate the archive"); + if (!TheArchive) + throw err_msg; TheArchive->writeToDisk(true, false, false );