summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Linker
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-08-16 07:47:30 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-08-16 07:47:30 +0000
commit19c21c593f9233a26ae2413b697e30767764796c (patch)
tree4c7b71d9a08517c9ce856c74eb6d8aef9895f55f /llvm/lib/Linker
parentc7ac888ac33192b3b4fb384cf4696d02a5f87ed5 (diff)
downloadbcm5719-llvm-19c21c593f9233a26ae2413b697e30767764796c.tar.gz
bcm5719-llvm-19c21c593f9233a26ae2413b697e30767764796c.zip
Improve error handling in the linker by:
1. Eliminate redundant error messages. LinkInFile and LinkInArchive already call the error() method in each case so there's no use telling the user again that an item couldn't be linked in. 2. Improve the formatting of error messages (separating content). 3. Change the wording for the warning about unrecognized files. Make it clear that the file is being ignored. llvm-svn: 41121
Diffstat (limited to 'llvm/lib/Linker')
-rw-r--r--llvm/lib/Linker/LinkItems.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/Linker/LinkItems.cpp b/llvm/lib/Linker/LinkItems.cpp
index 976dee0353a..95050d0750d 100644
--- a/llvm/lib/Linker/LinkItems.cpp
+++ b/llvm/lib/Linker/LinkItems.cpp
@@ -87,7 +87,7 @@ bool Linker::LinkInLibrary(const std::string& Lib, bool& is_native) {
case sys::Bitcode_FileType:
// LLVM ".so" file.
if (LinkInFile(Pathname, is_native))
- return error("Cannot link file '" + Pathname.toString() + "'");
+ return true;
break;
case sys::Archive_FileType:
@@ -180,24 +180,24 @@ bool Linker::LinkInFile(const sys::Path &File, bool &is_native) {
switch (sys::IdentifyFileType(Magic.c_str(), 64)) {
default: assert(0 && "Bad file type identification");
case sys::Unknown_FileType:
- return warning("Supposed object file '" + File.toString() +
- "' not recognized as such");
+ return warning("Ignoring file '" + File.toString() +
+ "' because does not contain bitcode.");
case sys::Archive_FileType:
// A user may specify an ar archive without -l, perhaps because it
// is not installed as a library. Detect that and link the archive.
verbose("Linking archive file '" + File.toString() + "'");
if (LinkInArchive(File, is_native))
- return error("Cannot link archive '" + File.toString() + "'");
+ return true;
break;
case sys::Bitcode_FileType: {
verbose("Linking bitcode file '" + File.toString() + "'");
std::auto_ptr<Module> M(LoadObject(File));
if (M.get() == 0)
- return error("Cannot load file '" + File.toString() + "'" + Error);
+ return error("Cannot load file '" + File.toString() + "': " + Error);
if (LinkInModule(M.get(), &Error))
- return error("Cannot link file '" + File.toString() + "'" + Error);
+ return error("Cannot link file '" + File.toString() + "': " + Error);
verbose("Linked in file '" + File.toString() + "'");
break;
OpenPOWER on IntegriCloud