blob: a059e65853bb148223d3b2aa291c482961c879c0 [file] [log] [blame]
David Majnemera2715902014-10-31 05:07:00 +00001RUN: llvm-nm -a %p/Inputs/archive-test.a-coff-i386 \
Michael J. Spencer9142ae22011-09-27 19:37:18 +00002RUN: | FileCheck %s -check-prefix COFF
Rafael Espindola09a7f602013-07-03 15:57:14 +00003
Michael J. Spencer9142ae22011-09-27 19:37:18 +00004COFF: trivial-object-test.coff-i386:
5COFF-NEXT: 00000000 d .data
6COFF-NEXT: 00000000 t .text
7COFF-NEXT: 00000000 d L_.str
8COFF-NEXT: U _SomeOtherFunction
9COFF-NEXT: 00000000 T _main
10COFF-NEXT: U _puts
11
David Majnemera2715902014-10-31 05:07:00 +000012RUN: llvm-nm -a -o %p/Inputs/archive-test.a-coff-i386 \
Kevin Enderbyfb0326c2014-07-24 23:31:52 +000013RUN: | FileCheck %s -check-prefix COFF-o
14
15COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 d .data
16COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 t .text
17COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 d L_.str
18COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: U _SomeOtherFunction
19COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 T _main
20COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: U _puts
Rafael Espindola51597182013-07-10 20:14:22 +000021
22RUN: llvm-as %p/Inputs/trivial.ll -o=%t1
23RUN: rm -f %t2
24RUN: llvm-ar rcs %t2 %t1
25RUN: llvm-nm %t2 | FileCheck %s -check-prefix BITCODE
26
Peter Collingbourne1d815ca2015-06-09 21:50:22 +000027RUN: rm -f %t2
28RUN: llvm-lib /out:%t2 %t1
29RUN: llvm-nm %t2 | FileCheck %s -check-prefix BITCODE
30
31RUN: rm -f %t2
32RUN: echo /out:%t2 %t1 > %t.rsp
33RUN: llvm-lib @%t.rsp
34RUN: llvm-nm %t2 | FileCheck %s -check-prefix BITCODE
35
Michael J. Spencer9142ae22011-09-27 19:37:18 +000036BITCODE: U SomeOtherFunction
37BITCODE-NEXT: T main
38BITCODE-NEXT: U puts
Rafael Espindolaada0f6a2014-07-04 15:03:17 +000039BITCODE-NEXT: D var
Rafael Espindola51597182013-07-10 20:14:22 +000040
41
42Test we don't error with an archive with no symtab.
43RUN: llvm-nm %p/Inputs/archive-test.a-gnu-no-symtab
44
45
46Or in an archive with no symtab or string table.
47RUN: llvm-nm %p/Inputs/archive-test.a-gnu-minimal
48
49
Alp Toker087ab612013-12-05 05:44:44 +000050And don't crash when asked to print a non-existing symtab.
Kevin Enderbye3108d32014-07-08 23:47:31 +000051RUN: llvm-nm -M %p/Inputs/archive-test.a-gnu-minimal
Rafael Espindola5e102c62013-07-12 13:32:28 +000052
53Don't reject an empty archive.
54RUN: llvm-nm %p/Inputs/archive-test.a-empty
Rafael Espindola7f2f94f2014-06-16 16:41:00 +000055
56This archive has an unaligned member and a unknown format member.
57GNU AR is able to parse the unaligned member and warns about the member with
Kevin Enderby77be0942016-05-17 17:10:12 +000058the unknown format. We should probably simply warn on both. For now we just
59produce an error for the unknown format.
60RUN: not llvm-nm %p/Inputs/corrupt-archive.a 2>&1 | FileCheck %s -check-prefix CORRUPT
Rafael Espindolae2d20cb2017-10-10 20:00:07 +000061CORRUPT: corrupt-archive.a(trivial-object-test2.elf-x86-64) Insufficient alignment
Rafael Espindolabd58d4e2015-07-22 18:29:39 +000062
63
64RUN: llvm-nm %p/Inputs/thin.a | FileCheck %s -check-prefix THIN
65
66THIN: IsNAN.o:
67THIN: 00000014 T _ZN4llvm5IsNANEd
68THIN: 00000000 T _ZN4llvm5IsNANEf
69THIN: U __isnan
70THIN: U __isnanf