David Majnemer | 42b17f9 | 2014-11-06 08:10:41 +0000 | [diff] [blame] | 1 | RUN: yaml2obj %p/Inputs/COFF/i386.yaml | llvm-nm -a -S - \ |
Rafael Espindola | c6174ad | 2015-05-22 13:17:31 +0000 | [diff] [blame] | 2 | RUN: | FileCheck %s -check-prefix COFF32 |
David Majnemer | 42b17f9 | 2014-11-06 08:10:41 +0000 | [diff] [blame] | 3 | RUN: yaml2obj %p/Inputs/COFF/x86-64.yaml | llvm-nm -a -S - \ |
Rafael Espindola | c6174ad | 2015-05-22 13:17:31 +0000 | [diff] [blame] | 4 | RUN: | FileCheck %s -check-prefix COFF64 |
Sam Clegg | 3ba6566 | 2017-07-10 20:43:26 +0000 | [diff] [blame] | 5 | RUN: llvm-nm %p/Inputs/trivial-object-test.wasm \ |
| 6 | RUN: | FileCheck %s -check-prefix WASM |
Matt Beaumont-Gay | 11f9987 | 2011-10-31 23:56:52 +0000 | [diff] [blame] | 7 | RUN: llvm-nm %p/Inputs/trivial-object-test.elf-i386 \ |
Michael J. Spencer | db26073 | 2011-01-20 06:39:15 +0000 | [diff] [blame] | 8 | RUN: | FileCheck %s -check-prefix ELF |
Rafael Espindola | 05f7d4f | 2015-05-22 13:28:35 +0000 | [diff] [blame] | 9 | RUN: llvm-nm %p/Inputs/trivial-object-test.elf-i386 -S \ |
| 10 | RUN: | FileCheck %s -check-prefix ELF-SIZE |
Kevin Enderby | fb0326c | 2014-07-24 23:31:52 +0000 | [diff] [blame] | 11 | RUN: llvm-nm -o %p/Inputs/trivial-object-test.elf-i386 \ |
| 12 | RUN: | FileCheck %s -check-prefix ELF-o |
Kevin Enderby | 0ee7d91 | 2014-07-28 23:17:38 +0000 | [diff] [blame] | 13 | RUN: llvm-nm -u %p/Inputs/trivial-object-test.elf-i386 \ |
| 14 | RUN: | FileCheck %s -check-prefix ELF-u |
Matt Beaumont-Gay | 11f9987 | 2011-10-31 23:56:52 +0000 | [diff] [blame] | 15 | RUN: llvm-nm %p/Inputs/trivial-object-test.elf-x86-64 \ |
Kevin Enderby | ae41759 | 2014-05-09 23:57:49 +0000 | [diff] [blame] | 16 | RUN: | FileCheck %s -check-prefix ELF64 |
Rafael Espindola | 7e369ff | 2014-02-04 23:53:15 +0000 | [diff] [blame] | 17 | RUN: llvm-nm %p/Inputs/weak.elf-x86-64 \ |
Kevin Enderby | ae41759 | 2014-05-09 23:57:49 +0000 | [diff] [blame] | 18 | RUN: | FileCheck %s -check-prefix WEAK-ELF64 |
Rafael Espindola | 9e849c7 | 2014-02-05 04:36:47 +0000 | [diff] [blame] | 19 | RUN: llvm-nm %p/Inputs/absolute.elf-x86-64 \ |
Kevin Enderby | ae41759 | 2014-05-09 23:57:49 +0000 | [diff] [blame] | 20 | RUN: | FileCheck %s -check-prefix ABSOLUTE-ELF64 |
Danil Malyshev | b0436a7 | 2011-11-29 17:40:10 +0000 | [diff] [blame] | 21 | RUN: llvm-nm %p/Inputs/trivial-object-test.macho-i386 \ |
| 22 | RUN: | FileCheck %s -check-prefix macho |
Kevin Enderby | c150516 | 2014-07-03 18:18:50 +0000 | [diff] [blame] | 23 | RUN: llvm-nm -U %p/Inputs/trivial-object-test.macho-i386 \ |
| 24 | RUN: | FileCheck %s -check-prefix macho-U |
Danil Malyshev | b0436a7 | 2011-11-29 17:40:10 +0000 | [diff] [blame] | 25 | RUN: llvm-nm %p/Inputs/trivial-object-test.macho-x86-64 \ |
| 26 | RUN: | FileCheck %s -check-prefix macho64 |
Kevin Enderby | f7b992bd | 2014-06-19 22:49:21 +0000 | [diff] [blame] | 27 | RUN: llvm-nm %p/Inputs/macho-text-data-bss.macho-x86_64 \ |
| 28 | RUN: | FileCheck %s -check-prefix macho-tdb |
Kevin Enderby | 26272de | 2014-07-03 21:51:07 +0000 | [diff] [blame] | 29 | RUN: llvm-nm -j %p/Inputs/macho-text-data-bss.macho-x86_64 \ |
| 30 | RUN: | FileCheck %s -check-prefix macho-j |
Kevin Enderby | 1faddea | 2014-07-02 23:23:58 +0000 | [diff] [blame] | 31 | RUN: llvm-nm -r %p/Inputs/macho-text-data-bss.macho-x86_64 \ |
| 32 | RUN: | FileCheck %s -check-prefix macho-r |
Kevin Enderby | 7f50100 | 2014-07-11 20:30:00 +0000 | [diff] [blame] | 33 | RUN: llvm-nm %p/Inputs/macho-text-data-bss.macho-x86_64 -s __DATA __data \ |
| 34 | RUN: | FileCheck %s -check-prefix macho-s |
Kevin Enderby | 15f2c50 | 2014-07-16 17:38:26 +0000 | [diff] [blame] | 35 | RUN: llvm-nm -x %p/Inputs/macho-text-data-bss.macho-x86_64 \ |
| 36 | RUN: | FileCheck %s -check-prefix macho-x |
Kevin Enderby | fb0326c | 2014-07-24 23:31:52 +0000 | [diff] [blame] | 37 | RUN: llvm-nm -o %p/Inputs/macho-text-data-bss.macho-x86_64 \ |
| 38 | RUN: | FileCheck %s -check-prefix macho-o |
Kevin Enderby | c61aa02 | 2014-07-17 22:47:16 +0000 | [diff] [blame] | 39 | RUN: llvm-nm -p -a %p/Inputs/macho-hello-g.macho-x86_64 \ |
| 40 | RUN: | FileCheck %s -check-prefix macho-pa |
Kevin Enderby | 0ee7d91 | 2014-07-28 23:17:38 +0000 | [diff] [blame] | 41 | RUN: llvm-nm -u %p/Inputs/macho-hello-g.macho-x86_64 \ |
| 42 | RUN: | FileCheck %s -check-prefix macho-u |
David Majnemer | a271590 | 2014-10-31 05:07:00 +0000 | [diff] [blame] | 43 | RUN: llvm-nm -S -a %p/Inputs/common.coff-i386 \ |
Rafael Espindola | 9b06b0f | 2014-02-04 23:18:52 +0000 | [diff] [blame] | 44 | RUN: | FileCheck %s -check-prefix COFF-COMMON |
Rafael Espindola | 14ae434 | 2014-04-03 00:19:35 +0000 | [diff] [blame] | 45 | RUN: llvm-nm %p/Inputs/relocatable-with-section-address.elf-x86-64 \ |
Kevin Enderby | ae41759 | 2014-05-09 23:57:49 +0000 | [diff] [blame] | 46 | RUN: | FileCheck %s -check-prefix ELF-SEC-ADDR64 |
Rafael Espindola | ee2bf5b | 2014-04-03 02:20:43 +0000 | [diff] [blame] | 47 | RUN: llvm-nm %p/Inputs/thumb-symbols.elf.arm \ |
| 48 | RUN: | FileCheck %s -check-prefix ELF-THUMB |
Kevin Enderby | 138222e | 2014-06-23 20:27:53 +0000 | [diff] [blame] | 49 | RUN: mkdir -p %t |
| 50 | RUN: cd %t |
| 51 | RUN: cp %p/Inputs/trivial-object-test.macho-i386 a.out |
| 52 | RUN: llvm-nm | FileCheck %s -check-prefix A-OUT |
Rafael Espindola | ee2bf5b | 2014-04-03 02:20:43 +0000 | [diff] [blame] | 53 | |
Michael J. Spencer | db26073 | 2011-01-20 06:39:15 +0000 | [diff] [blame] | 54 | |
Rafael Espindola | 05f7d4f | 2015-05-22 13:28:35 +0000 | [diff] [blame] | 55 | COFF32: 00000000 d .data |
| 56 | COFF32-NEXT: 00000000 t .text |
| 57 | COFF32-NEXT: 00000000 d L_.str |
Rafael Espindola | c6174ad | 2015-05-22 13:17:31 +0000 | [diff] [blame] | 58 | COFF32-NEXT: U _SomeOtherFunction |
Rafael Espindola | 05f7d4f | 2015-05-22 13:28:35 +0000 | [diff] [blame] | 59 | COFF32-NEXT: 00000000 T _main |
Rafael Espindola | c6174ad | 2015-05-22 13:17:31 +0000 | [diff] [blame] | 60 | COFF32-NEXT: U _puts |
| 61 | |
Sam Clegg | d578479 | 2018-02-23 05:08:34 +0000 | [diff] [blame] | 62 | |
| 63 | WASM: 00000000 d .L.str |
Heejin Ahn | 0f48414 | 2018-11-07 01:58:50 +0000 | [diff] [blame] | 64 | WASM-NEXT: 00000003 t .LSomeOtherFunction_bitcast |
Sam Clegg | d578479 | 2018-02-23 05:08:34 +0000 | [diff] [blame] | 65 | WASM-NEXT: U SomeOtherFunction |
Sam Clegg | 3ba6566 | 2017-07-10 20:43:26 +0000 | [diff] [blame] | 66 | WASM-NEXT: 00000002 T main |
| 67 | WASM-NEXT: U puts |
Sam Clegg | 3ccf551 | 2017-08-31 23:22:44 +0000 | [diff] [blame] | 68 | WASM-NEXT: 00000010 D var |
Sam Clegg | 3ba6566 | 2017-07-10 20:43:26 +0000 | [diff] [blame] | 69 | |
Sam Clegg | d578479 | 2018-02-23 05:08:34 +0000 | [diff] [blame] | 70 | |
Rafael Espindola | 05f7d4f | 2015-05-22 13:28:35 +0000 | [diff] [blame] | 71 | COFF64: 00000000 d .data |
| 72 | COFF64-NEXT: 00000000 t .text |
| 73 | COFF64-NEXT: 00000000 r ??__Ex@@YAXXZ |
| 74 | COFF64-NEXT: 00000000 d L.str |
Rafael Espindola | c6174ad | 2015-05-22 13:17:31 +0000 | [diff] [blame] | 75 | COFF64-NEXT: U SomeOtherFunction |
Rafael Espindola | 05f7d4f | 2015-05-22 13:28:35 +0000 | [diff] [blame] | 76 | COFF64-NEXT: 00000000 T main |
Rafael Espindola | c6174ad | 2015-05-22 13:17:31 +0000 | [diff] [blame] | 77 | COFF64-NEXT: U puts |
Michael J. Spencer | db26073 | 2011-01-20 06:39:15 +0000 | [diff] [blame] | 78 | |
Rafael Espindola | 05f7d4f | 2015-05-22 13:28:35 +0000 | [diff] [blame] | 79 | COFF-COMMON: 00000000 b .bss |
| 80 | COFF-COMMON-NEXT: 00000000 d .data |
| 81 | COFF-COMMON-NEXT: 00000000 d .drectve |
| 82 | COFF-COMMON-NEXT: 00000000 n .file |
| 83 | COFF-COMMON-NEXT: 00000000 r .rdata$zzz |
| 84 | COFF-COMMON-NEXT: 00000000 t .text |
| 85 | COFF-COMMON-NEXT: C _a |
Rafael Espindola | 9b06b0f | 2014-02-04 23:18:52 +0000 | [diff] [blame] | 86 | |
| 87 | |
Rafael Espindola | 30115ec | 2013-07-22 19:24:34 +0000 | [diff] [blame] | 88 | ELF-NOT: U |
Michael J. Spencer | db26073 | 2011-01-20 06:39:15 +0000 | [diff] [blame] | 89 | ELF: U SomeOtherFunction |
| 90 | ELF: 00000000 T main |
| 91 | ELF: U puts |
Danil Malyshev | b0436a7 | 2011-11-29 17:40:10 +0000 | [diff] [blame] | 92 | |
Meador Inge | 54801d6 | 2016-11-23 20:17:15 +0000 | [diff] [blame] | 93 | ELF-SIZE: U SomeOtherFunction |
Rafael Espindola | 05f7d4f | 2015-05-22 13:28:35 +0000 | [diff] [blame] | 94 | ELF-SIZE-NEXT: 00000000 00000024 T main |
Meador Inge | 54801d6 | 2016-11-23 20:17:15 +0000 | [diff] [blame] | 95 | ELF-SIZE-NEXT: U puts |
Rafael Espindola | 05f7d4f | 2015-05-22 13:28:35 +0000 | [diff] [blame] | 96 | |
Kevin Enderby | fb0326c | 2014-07-24 23:31:52 +0000 | [diff] [blame] | 97 | ELF-o: {{.*}}/trivial-object-test.elf-i386: U SomeOtherFunction |
| 98 | ELF-o: {{.*}}/trivial-object-test.elf-i386: 00000000 T main |
| 99 | ELF-o: {{.*}}/trivial-object-test.elf-i386: U puts |
| 100 | |
Kevin Enderby | 0ee7d91 | 2014-07-28 23:17:38 +0000 | [diff] [blame] | 101 | ELF-u: U SomeOtherFunction |
| 102 | ELF-u: U puts |
| 103 | |
Kevin Enderby | ae41759 | 2014-05-09 23:57:49 +0000 | [diff] [blame] | 104 | ELF64: U SomeOtherFunction |
| 105 | ELF64: 0000000000000000 T main |
| 106 | ELF64: U puts |
Danil Malyshev | b0436a7 | 2011-11-29 17:40:10 +0000 | [diff] [blame] | 107 | |
Kevin Enderby | ae41759 | 2014-05-09 23:57:49 +0000 | [diff] [blame] | 108 | WEAK-ELF64: w f1 |
| 109 | WEAK-ELF64: 0000000000000000 W f2 |
| 110 | WEAK-ELF64: v x1 |
| 111 | WEAK-ELF64: 0000000000000000 V x2 |
| 112 | |
| 113 | ABSOLUTE-ELF64: 0000000000000123 a a1 |
| 114 | ABSOLUTE-ELF64: 0000000000000123 A a2 |
Rafael Espindola | 9e849c7 | 2014-02-05 04:36:47 +0000 | [diff] [blame] | 115 | |
Kevin Enderby | b38059a | 2014-05-20 23:04:47 +0000 | [diff] [blame] | 116 | macho: U _SomeOtherFunction |
Rafael Espindola | 6152f7d | 2013-11-02 05:03:24 +0000 | [diff] [blame] | 117 | macho: 00000000 T _main |
Kevin Enderby | b38059a | 2014-05-20 23:04:47 +0000 | [diff] [blame] | 118 | macho: U _puts |
Danil Malyshev | b0436a7 | 2011-11-29 17:40:10 +0000 | [diff] [blame] | 119 | |
Kevin Enderby | c150516 | 2014-07-03 18:18:50 +0000 | [diff] [blame] | 120 | macho-U-NOT: U _SomeOtherFunction |
| 121 | macho-U: 00000000 T _main |
| 122 | macho-U-NOT: U _puts |
| 123 | |
Kevin Enderby | ae41759 | 2014-05-09 23:57:49 +0000 | [diff] [blame] | 124 | macho64: 0000000000000028 s L_.str |
Kevin Enderby | b38059a | 2014-05-20 23:04:47 +0000 | [diff] [blame] | 125 | macho64: U _SomeOtherFunction |
Kevin Enderby | ae41759 | 2014-05-09 23:57:49 +0000 | [diff] [blame] | 126 | macho64: 0000000000000000 T _main |
Kevin Enderby | b38059a | 2014-05-20 23:04:47 +0000 | [diff] [blame] | 127 | macho64: U _puts |
Rafael Espindola | 14ae434 | 2014-04-03 00:19:35 +0000 | [diff] [blame] | 128 | |
Kevin Enderby | f7b992bd | 2014-06-19 22:49:21 +0000 | [diff] [blame] | 129 | macho-tdb: 0000000000000030 s EH_frame0 |
| 130 | macho-tdb: 0000000000000070 b _b |
| 131 | macho-tdb: 000000000000000c D _d |
| 132 | macho-tdb: 0000000000000000 T _t |
| 133 | macho-tdb: 0000000000000048 S _t.eh |
Rafael Espindola | 14ae434 | 2014-04-03 00:19:35 +0000 | [diff] [blame] | 134 | |
Kevin Enderby | 26272de | 2014-07-03 21:51:07 +0000 | [diff] [blame] | 135 | macho-j: EH_frame0 |
| 136 | macho-j: _b |
| 137 | macho-j: _d |
| 138 | macho-j: _t |
| 139 | macho-j: _t.eh |
| 140 | |
Kevin Enderby | 1faddea | 2014-07-02 23:23:58 +0000 | [diff] [blame] | 141 | macho-r: 0000000000000048 S _t.eh |
| 142 | macho-r-NEXT: 0000000000000000 T _t |
| 143 | macho-r-NEXT: 000000000000000c D _d |
| 144 | macho-r-NEXT: 0000000000000070 b _b |
| 145 | macho-r-NEXT: 0000000000000030 s EH_frame0 |
| 146 | |
Kevin Enderby | 7f50100 | 2014-07-11 20:30:00 +0000 | [diff] [blame] | 147 | macho-s: 000000000000000c D _d |
| 148 | macho-s-NOT: 0000000000000048 S _t.eh |
| 149 | macho-s-NOT: 0000000000000000 T _t |
| 150 | macho-s-NOT: 0000000000000070 b _b |
| 151 | macho-s-NOT: 0000000000000030 s EH_frame0 |
| 152 | |
Kevin Enderby | 15f2c50 | 2014-07-16 17:38:26 +0000 | [diff] [blame] | 153 | macho-x: 0000000000000030 0e 05 0000 00000010 EH_frame0 |
| 154 | macho-x: 0000000000000070 0e 03 0000 0000000d _b |
| 155 | macho-x: 000000000000000c 0f 02 0000 00000004 _d |
| 156 | macho-x: 0000000000000000 0f 01 0000 00000001 _t |
| 157 | macho-x: 0000000000000048 0f 05 0000 00000007 _t.eh |
| 158 | |
Kevin Enderby | fb0326c | 2014-07-24 23:31:52 +0000 | [diff] [blame] | 159 | |
| 160 | macho-o: {{.*}}/macho-text-data-bss.macho-x86_64: 0000000000000030 s EH_frame0 |
| 161 | macho-o: {{.*}}/macho-text-data-bss.macho-x86_64: 0000000000000070 b _b |
| 162 | macho-o: {{.*}}/macho-text-data-bss.macho-x86_64: 000000000000000c D _d |
| 163 | macho-o: {{.*}}/macho-text-data-bss.macho-x86_64: 0000000000000000 T _t |
| 164 | macho-o: {{.*}}/macho-text-data-bss.macho-x86_64: 0000000000000048 S _t.eh |
| 165 | |
Kevin Enderby | c61aa02 | 2014-07-17 22:47:16 +0000 | [diff] [blame] | 166 | macho-pa: 0000000000000000 - 00 0000 SO /Volumes/SandBox/ |
| 167 | macho-pa: 0000000000000000 - 00 0000 SO hello.c |
| 168 | macho-pa: 0000000053c8408d - 03 0001 OSO /Volumes/SandBox/hello.o |
| 169 | macho-pa: 0000000100000f30 - 01 0000 BNSYM |
| 170 | macho-pa: 0000000100000f30 - 01 0000 FUN _main |
| 171 | macho-pa: 000000000000003b - 00 0000 FUN |
| 172 | macho-pa: 000000000000003b - 01 0000 ENSYM |
| 173 | macho-pa: 0000000000000000 - 01 0000 SO |
| 174 | macho-pa: 0000000100000000 T __mh_execute_header |
| 175 | macho-pa: 0000000100000f30 T _main |
| 176 | macho-pa: U _printf |
| 177 | macho-pa: U dyld_stub_binder |
| 178 | |
Kevin Enderby | 0ee7d91 | 2014-07-28 23:17:38 +0000 | [diff] [blame] | 179 | macho-u: _printf |
| 180 | macho-u: dyld_stub_binder |
| 181 | |
Rafael Espindola | 14ae434 | 2014-04-03 00:19:35 +0000 | [diff] [blame] | 182 | Test that nm uses addresses even with ELF .o files. |
Kevin Enderby | ae41759 | 2014-05-09 23:57:49 +0000 | [diff] [blame] | 183 | ELF-SEC-ADDR64: 0000000000000058 D a |
| 184 | ELF-SEC-ADDR64-NEXT: 000000000000005c D b |
| 185 | ELF-SEC-ADDR64-NEXT: 0000000000000040 T f |
| 186 | ELF-SEC-ADDR64-NEXT: 0000000000000050 T g |
| 187 | ELF-SEC-ADDR64-NEXT: 0000000000000060 D p |
Rafael Espindola | ee2bf5b | 2014-04-03 02:20:43 +0000 | [diff] [blame] | 188 | |
| 189 | |
| 190 | Test that we drop the thumb bit only from function addresses. |
| 191 | ELF-THUMB: 00000000 t f |
| 192 | ELF-THUMB: 00000003 t g |
Kevin Enderby | 138222e | 2014-06-23 20:27:53 +0000 | [diff] [blame] | 193 | |
| 194 | A-OUT: U _SomeOtherFunction |
| 195 | A-OUT: 00000000 T _main |
| 196 | A-OUT: U _puts |