diff options
author | Kevin Enderby <enderby@apple.com> | 2012-05-08 23:38:45 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2012-05-08 23:38:45 +0000 |
commit | fe3d005ca52cbf7680474e8ecfab97b163e3d874 (patch) | |
tree | 1ab143c86c358f00e831539136a516c1fa6ba3c2 /llvm/tools/llvm-objdump/llvm-objdump.cpp | |
parent | 40306e7e308e1e01b31acee46437326565ba80d0 (diff) | |
download | bcm5719-llvm-fe3d005ca52cbf7680474e8ecfab97b163e3d874.tar.gz bcm5719-llvm-fe3d005ca52cbf7680474e8ecfab97b163e3d874.zip |
Fix it so llvm-objdump -arch does accept x86 and x86-64 as valid arch names.
PR12731. Patch by Meador Inge!
llvm-svn: 156444
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.cpp | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index 4cf15b614b3..7aaebb28a46 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -106,27 +106,25 @@ static bool error(error_code ec) { static const Target *GetTarget(const ObjectFile *Obj = NULL) { // Figure out the target triple. - llvm::Triple TT("unknown-unknown-unknown"); + llvm::Triple TheTriple("unknown-unknown-unknown"); if (TripleName.empty()) { if (Obj) - TT.setArch(Triple::ArchType(Obj->getArch())); + TheTriple.setArch(Triple::ArchType(Obj->getArch())); } else - TT.setTriple(Triple::normalize(TripleName)); - - if (!ArchName.empty()) - TT.setArchName(ArchName); - - TripleName = TT.str(); + TheTriple.setTriple(Triple::normalize(TripleName)); // Get the target specific parser. std::string Error; - const Target *TheTarget = TargetRegistry::lookupTarget(TripleName, Error); - if (TheTarget) - return TheTarget; + const Target *TheTarget = TargetRegistry::lookupTarget(ArchName, TheTriple, + Error); + if (!TheTarget) { + errs() << ToolName << ": " << Error; + return 0; + } - errs() << ToolName << ": error: unable to get target for '" << TripleName - << "', see --version and --triple.\n"; - return 0; + // Update the triple name and return the found target. + TripleName = TheTriple.getTriple(); + return TheTarget; } void llvm::StringRefMemoryObject::anchor() { } |