blob: 1a13c23f2450e1f42106725630381386b1520e91 [file] [log] [blame]
David Majnemerc7d7c6f2014-10-31 05:07:00 +00001RUN: llvm-nm -a %p/Inputs/archive-test.a-coff-i386 \
Michael J. Spencer2bc774a2011-09-27 19:37:18 +00002RUN: | FileCheck %s -check-prefix COFF
Rafael Espindola88ae7dd2013-07-03 15:57:14 +00003
Michael J. Spencer2bc774a2011-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 Majnemerc7d7c6f2014-10-31 05:07:00 +000012RUN: llvm-nm -a -o %p/Inputs/archive-test.a-coff-i386 \
Kevin Enderby08e1bbd2014-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 Espindolafbcafc02013-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 Collingbournebc051632015-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. Spencer2bc774a2011-09-27 19:37:18 +000036BITCODE: U SomeOtherFunction
37BITCODE-NEXT: T main
38BITCODE-NEXT: U puts
Rafael Espindolab674c172014-07-04 15:03:17 +000039BITCODE-NEXT: D var
Rafael Espindolafbcafc02013-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 Tokerf907b892013-12-05 05:44:44 +000050And don't crash when asked to print a non-existing symtab.
Kevin Enderby8da4bd62014-07-08 23:47:31 +000051RUN: llvm-nm -M %p/Inputs/archive-test.a-gnu-minimal
Rafael Espindolaf0c61722013-07-12 13:32:28 +000052
53Don't reject an empty archive.
54RUN: llvm-nm %p/Inputs/archive-test.a-empty
Rafael Espindola95cf2f22014-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 Enderbyac9e1552016-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
61CORRUPT: corrupt-archive.a(trivial-object-test2.elf-x86-64) Invalid data was encountered while parsing the file
Rafael Espindola69ef2af2015-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