1RUN: yaml2obj %p/Inputs/COFF/i386.yaml | llvm-nm -a -S - \ 2RUN: | FileCheck %s -check-prefix COFF 3RUN: yaml2obj %p/Inputs/COFF/x86-64.yaml | llvm-nm -a -S - \ 4RUN: | FileCheck %s -check-prefix COFF 5RUN: llvm-nm %p/Inputs/trivial-object-test.elf-i386 \ 6RUN: | FileCheck %s -check-prefix ELF 7RUN: llvm-nm -o %p/Inputs/trivial-object-test.elf-i386 \ 8RUN: | FileCheck %s -check-prefix ELF-o 9RUN: llvm-nm -u %p/Inputs/trivial-object-test.elf-i386 \ 10RUN: | FileCheck %s -check-prefix ELF-u 11RUN: llvm-nm %p/Inputs/trivial-object-test.elf-x86-64 \ 12RUN: | FileCheck %s -check-prefix ELF64 13RUN: llvm-nm %p/Inputs/weak.elf-x86-64 \ 14RUN: | FileCheck %s -check-prefix WEAK-ELF64 15RUN: llvm-nm %p/Inputs/absolute.elf-x86-64 \ 16RUN: | FileCheck %s -check-prefix ABSOLUTE-ELF64 17RUN: llvm-nm %p/Inputs/trivial-object-test.macho-i386 \ 18RUN: | FileCheck %s -check-prefix macho 19RUN: llvm-nm -U %p/Inputs/trivial-object-test.macho-i386 \ 20RUN: | FileCheck %s -check-prefix macho-U 21RUN: llvm-nm %p/Inputs/trivial-object-test.macho-x86-64 \ 22RUN: | FileCheck %s -check-prefix macho64 23RUN: llvm-nm %p/Inputs/macho-text-data-bss.macho-x86_64 \ 24RUN: | FileCheck %s -check-prefix macho-tdb 25RUN: llvm-nm -j %p/Inputs/macho-text-data-bss.macho-x86_64 \ 26RUN: | FileCheck %s -check-prefix macho-j 27RUN: llvm-nm -r %p/Inputs/macho-text-data-bss.macho-x86_64 \ 28RUN: | FileCheck %s -check-prefix macho-r 29RUN: llvm-nm %p/Inputs/macho-text-data-bss.macho-x86_64 -s __DATA __data \ 30RUN: | FileCheck %s -check-prefix macho-s 31RUN: llvm-nm -x %p/Inputs/macho-text-data-bss.macho-x86_64 \ 32RUN: | FileCheck %s -check-prefix macho-x 33RUN: llvm-nm -o %p/Inputs/macho-text-data-bss.macho-x86_64 \ 34RUN: | FileCheck %s -check-prefix macho-o 35RUN: llvm-nm -p -a %p/Inputs/macho-hello-g.macho-x86_64 \ 36RUN: | FileCheck %s -check-prefix macho-pa 37RUN: llvm-nm -u %p/Inputs/macho-hello-g.macho-x86_64 \ 38RUN: | FileCheck %s -check-prefix macho-u 39RUN: llvm-nm -S -a %p/Inputs/common.coff-i386 \ 40RUN: | FileCheck %s -check-prefix COFF-COMMON 41RUN: llvm-nm %p/Inputs/relocatable-with-section-address.elf-x86-64 \ 42RUN: | FileCheck %s -check-prefix ELF-SEC-ADDR64 43RUN: llvm-nm %p/Inputs/thumb-symbols.elf.arm \ 44RUN: | FileCheck %s -check-prefix ELF-THUMB 45RUN: mkdir -p %t 46RUN: cd %t 47RUN: cp %p/Inputs/trivial-object-test.macho-i386 a.out 48RUN: llvm-nm | FileCheck %s -check-prefix A-OUT 49REQUIRES: shell 50 51 52COFF: 00000000 {{.*}} d .data 53COFF: 00000000 {{.*}} t .text 54COFF: 00000000 0000000d d L{{_?}}.str 55COFF: U {{_?}}SomeOtherFunction 56COFF: 00000000 {{.*}} T {{_?}}main 57COFF: U {{_?}}puts 58 59COFF-COMMON: 00000000 00000000 b .bss 60COFF-COMMON-NEXT: 00000000 00000000 d .data 61COFF-COMMON-NEXT: 00000000 00000014 d .drectve 62COFF-COMMON-NEXT: 00000000 00000000 n .file 63COFF-COMMON-NEXT: 00000000 00000014 r .rdata$zzz 64COFF-COMMON-NEXT: 00000000 00000000 t .text 65COFF-COMMON-NEXT: 00000004 C _a 66 67 68ELF-NOT: U 69ELF: U SomeOtherFunction 70ELF: 00000000 T main 71ELF: U puts 72 73ELF-o: {{.*}}/trivial-object-test.elf-i386: U SomeOtherFunction 74ELF-o: {{.*}}/trivial-object-test.elf-i386: 00000000 T main 75ELF-o: {{.*}}/trivial-object-test.elf-i386: U puts 76 77ELF-u: U SomeOtherFunction 78ELF-u: U puts 79 80ELF64: U SomeOtherFunction 81ELF64: 0000000000000000 T main 82ELF64: U puts 83 84WEAK-ELF64: w f1 85WEAK-ELF64: 0000000000000000 W f2 86WEAK-ELF64: v x1 87WEAK-ELF64: 0000000000000000 V x2 88 89ABSOLUTE-ELF64: 0000000000000123 a a1 90ABSOLUTE-ELF64: 0000000000000123 A a2 91 92macho: U _SomeOtherFunction 93macho: 00000000 T _main 94macho: U _puts 95 96macho-U-NOT: U _SomeOtherFunction 97macho-U: 00000000 T _main 98macho-U-NOT: U _puts 99 100macho64: 0000000000000028 s L_.str 101macho64: U _SomeOtherFunction 102macho64: 0000000000000000 T _main 103macho64: U _puts 104 105macho-tdb: 0000000000000030 s EH_frame0 106macho-tdb: 0000000000000070 b _b 107macho-tdb: 000000000000000c D _d 108macho-tdb: 0000000000000000 T _t 109macho-tdb: 0000000000000048 S _t.eh 110 111macho-j: EH_frame0 112macho-j: _b 113macho-j: _d 114macho-j: _t 115macho-j: _t.eh 116 117macho-r: 0000000000000048 S _t.eh 118macho-r-NEXT: 0000000000000000 T _t 119macho-r-NEXT: 000000000000000c D _d 120macho-r-NEXT: 0000000000000070 b _b 121macho-r-NEXT: 0000000000000030 s EH_frame0 122 123macho-s: 000000000000000c D _d 124macho-s-NOT: 0000000000000048 S _t.eh 125macho-s-NOT: 0000000000000000 T _t 126macho-s-NOT: 0000000000000070 b _b 127macho-s-NOT: 0000000000000030 s EH_frame0 128 129macho-x: 0000000000000030 0e 05 0000 00000010 EH_frame0 130macho-x: 0000000000000070 0e 03 0000 0000000d _b 131macho-x: 000000000000000c 0f 02 0000 00000004 _d 132macho-x: 0000000000000000 0f 01 0000 00000001 _t 133macho-x: 0000000000000048 0f 05 0000 00000007 _t.eh 134 135 136macho-o: {{.*}}/macho-text-data-bss.macho-x86_64: 0000000000000030 s EH_frame0 137macho-o: {{.*}}/macho-text-data-bss.macho-x86_64: 0000000000000070 b _b 138macho-o: {{.*}}/macho-text-data-bss.macho-x86_64: 000000000000000c D _d 139macho-o: {{.*}}/macho-text-data-bss.macho-x86_64: 0000000000000000 T _t 140macho-o: {{.*}}/macho-text-data-bss.macho-x86_64: 0000000000000048 S _t.eh 141 142macho-pa: 0000000000000000 - 00 0000 SO /Volumes/SandBox/ 143macho-pa: 0000000000000000 - 00 0000 SO hello.c 144macho-pa: 0000000053c8408d - 03 0001 OSO /Volumes/SandBox/hello.o 145macho-pa: 0000000100000f30 - 01 0000 BNSYM 146macho-pa: 0000000100000f30 - 01 0000 FUN _main 147macho-pa: 000000000000003b - 00 0000 FUN 148macho-pa: 000000000000003b - 01 0000 ENSYM 149macho-pa: 0000000000000000 - 01 0000 SO 150macho-pa: 0000000100000000 T __mh_execute_header 151macho-pa: 0000000100000f30 T _main 152macho-pa: U _printf 153macho-pa: U dyld_stub_binder 154 155macho-u: _printf 156macho-u: dyld_stub_binder 157 158Test that nm uses addresses even with ELF .o files. 159ELF-SEC-ADDR64: 0000000000000058 D a 160ELF-SEC-ADDR64-NEXT: 000000000000005c D b 161ELF-SEC-ADDR64-NEXT: 0000000000000040 T f 162ELF-SEC-ADDR64-NEXT: 0000000000000050 T g 163ELF-SEC-ADDR64-NEXT: 0000000000000060 D p 164 165 166Test that we drop the thumb bit only from function addresses. 167ELF-THUMB: 00000000 t f 168ELF-THUMB: 00000003 t g 169 170A-OUT: U _SomeOtherFunction 171A-OUT: 00000000 T _main 172A-OUT: U _puts 173