Index: test/tools/llvm-nm/X86/size-sort.test =================================================================== --- /dev/null +++ test/tools/llvm-nm/X86/size-sort.test @@ -0,0 +1,12 @@ +# RUN: llvm-nm --size-sort %p/Inputs/hello.obj.elf-x86_64 | FileCheck --check-prefix=SIZE_SORT_NO_ADDR %s +# RUN: llvm-nm --size-sort -S %p/Inputs/hello.obj.elf-x86_64 | FileCheck --check-prefix=SIZE_SORT_PRINT_ADDR %s +# RUN: llvm-nm -S %p/Inputs/hello.obj.elf-x86_64 | FileCheck --check-prefix=NO_SIZE_SORT_PRINT_ADDR %s + +# SIZE_SORT_NO_ADDR: U puts +# SIZE_SORT_NO_ADDR: 0000000000000015 T main + +# SIZE_SORT_PRINT_ADDR: U puts +# SIZE_SORT_PRINT_ADDR: 0000000000000000 0000000000000015 T main + +# NO_SIZE_SORT_PRINT_ADDR: 0000000000000000 0000000000000015 T main +# NO_SIZE_SORT_PRINT_ADDR: U puts Index: tools/llvm-nm/llvm-nm.cpp =================================================================== --- tools/llvm-nm/llvm-nm.cpp +++ tools/llvm-nm/llvm-nm.cpp @@ -796,8 +796,7 @@ bool Global = SymFlags & SymbolRef::SF_Global; bool Weak = SymFlags & SymbolRef::SF_Weak; if ((!Undefined && UndefinedOnly) || (Undefined && DefinedOnly) || - (!Global && ExternalOnly) || (SizeSort && !PrintAddress) || - (Weak && NoWeakSymbols)) + (!Global && ExternalOnly) || (Weak && NoWeakSymbols)) continue; if (PrintFileName) writeFileName(outs()); @@ -830,7 +829,7 @@ strcpy(SymbolAddrStr, printDashes); else if(MachO && I->TypeChar == 'I') strcpy(SymbolAddrStr, printBlanks); - else + else if(PrintAddress) format(printFormat, I->Address) .print(SymbolAddrStr, sizeof(SymbolAddrStr)); format(printFormat, I->Size).print(SymbolSizeStr, sizeof(SymbolSizeStr));