aboutsummaryrefslogtreecommitdiffstats
path: root/test/Object/nm-archive.test
blob: a9ae9cbbfbd6b877eceb6d55dccbbb7458f0b79d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
RUN: llvm-nm -a %p/Inputs/archive-test.a-coff-i386 \
RUN:         | FileCheck %s -check-prefix COFF

COFF: trivial-object-test.coff-i386:
COFF-NEXT: 00000000 d .data
COFF-NEXT: 00000000 t .text
COFF-NEXT: 00000000 d L_.str
COFF-NEXT:          U _SomeOtherFunction
COFF-NEXT: 00000000 T _main
COFF-NEXT:          U _puts

RUN: llvm-nm -a -o %p/Inputs/archive-test.a-coff-i386 \
RUN:         | FileCheck %s -check-prefix COFF-o

COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 d .data
COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 t .text
COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 d L_.str
COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386:          U _SomeOtherFunction
COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 T _main
COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386:          U _puts

RUN: llvm-as %p/Inputs/trivial.ll -o=%t1
RUN: rm -f %t2
RUN: llvm-ar rcs %t2 %t1
RUN: llvm-nm %t2 | FileCheck %s -check-prefix BITCODE

BITCODE:          U SomeOtherFunction
BITCODE-NEXT:          T main
BITCODE-NEXT:          U puts
BITCODE-NEXT:          D var


Test we don't error with an archive with no symtab.
RUN: llvm-nm %p/Inputs/archive-test.a-gnu-no-symtab


Or in an archive with no symtab or string table.
RUN: llvm-nm %p/Inputs/archive-test.a-gnu-minimal


And don't crash when asked to print a non-existing symtab.
RUN: llvm-nm -M %p/Inputs/archive-test.a-gnu-minimal

Don't reject an empty archive.
RUN: llvm-nm %p/Inputs/archive-test.a-empty

This archive has an unaligned member and a unknown format member.
GNU AR is able to parse the unaligned member and warns about the member with
the unknown format. We should probably simply warn on both. For now just check
that we don't produce an error.
RUN: llvm-nm %p/Inputs/corrupt-archive.a