diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-13 22:01:02 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-07-13 22:01:02 +0000 |
| commit | 45592c64f3104f7a912c82264af027fa5cdb059b (patch) | |
| tree | ed615ac2b2b0daae633d2182f069e71ea67c9114 /llvm/tools/llvm-nm/llvm-nm.cpp | |
| parent | 1a550c0a87ae995b23627eafcbfa6a09b5dd489a (diff) | |
| download | bcm5719-llvm-45592c64f3104f7a912c82264af027fa5cdb059b.tar.gz bcm5719-llvm-45592c64f3104f7a912c82264af027fa5cdb059b.zip | |
Use std::make_tuple to reduce code duplication.
Thanks to David Blaikie for the suggestion.
llvm-svn: 242074
Diffstat (limited to 'llvm/tools/llvm-nm/llvm-nm.cpp')
| -rw-r--r-- | llvm/tools/llvm-nm/llvm-nm.cpp | 35 |
1 files changed, 8 insertions, 27 deletions
diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp index 80f166da399..e7ee3124ed7 100644 --- a/llvm/tools/llvm-nm/llvm-nm.cpp +++ b/llvm/tools/llvm-nm/llvm-nm.cpp @@ -185,39 +185,20 @@ struct NMSymbol { } static bool compareSymbolAddress(const NMSymbol &A, const NMSymbol &B) { - bool AUndefined = A.Sym.getFlags() & SymbolRef::SF_Undefined; - bool BUndefined = B.Sym.getFlags() & SymbolRef::SF_Undefined; - if (AUndefined && !BUndefined) - return true; - if (!AUndefined && BUndefined) - return false; - if (A.Address < B.Address) - return true; - if (A.Address == B.Address && A.Name < B.Name) - return true; - if (A.Address == B.Address && A.Name == B.Name && A.Size < B.Size) - return true; - return false; + bool ADefined = !(A.Sym.getFlags() & SymbolRef::SF_Undefined); + bool BDefined = !(B.Sym.getFlags() & SymbolRef::SF_Undefined); + return std::make_tuple(ADefined, A.Address, A.Name, A.Size) < + std::make_tuple(BDefined, B.Address, B.Name, B.Size); } static bool compareSymbolSize(const NMSymbol &A, const NMSymbol &B) { - if (A.Size < B.Size) - return true; - if (A.Size == B.Size && A.Name < B.Name) - return true; - if (A.Size == B.Size && A.Name == B.Name && A.Address < B.Address) - return true; - return false; + return std::make_tuple(A.Size, A.Name, A.Address) < + std::make_tuple(B.Size, B.Name, B.Address); } static bool compareSymbolName(const NMSymbol &A, const NMSymbol &B) { - if (A.Name < B.Name) - return true; - if (A.Name == B.Name && A.Size < B.Size) - return true; - if (A.Name == B.Name && A.Size == B.Size && A.Address < B.Address) - return true; - return false; + return std::make_tuple(A.Name, A.Size, A.Address) < + std::make_tuple(B.Name, B.Size, B.Address); } static char isSymbolList64Bit(SymbolicFile &Obj) { |

