LibDriver, llvm-lib: introduce.
[oota-llvm.git] / test / Object / nm-archive.test
1 RUN: llvm-nm -a %p/Inputs/archive-test.a-coff-i386 \
2 RUN:         | FileCheck %s -check-prefix COFF
3
4 COFF: trivial-object-test.coff-i386:
5 COFF-NEXT: 00000000 d .data
6 COFF-NEXT: 00000000 t .text
7 COFF-NEXT: 00000000 d L_.str
8 COFF-NEXT:          U _SomeOtherFunction
9 COFF-NEXT: 00000000 T _main
10 COFF-NEXT:          U _puts
11
12 RUN: llvm-nm -a -o %p/Inputs/archive-test.a-coff-i386 \
13 RUN:         | FileCheck %s -check-prefix COFF-o
14
15 COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 d .data
16 COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 t .text
17 COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 d L_.str
18 COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386:          U _SomeOtherFunction
19 COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386: 00000000 T _main
20 COFF-o: {{.*}}/archive-test.a-coff-i386:trivial-object-test.coff-i386:          U _puts
21
22 RUN: llvm-as %p/Inputs/trivial.ll -o=%t1
23 RUN: rm -f %t2
24 RUN: llvm-ar rcs %t2 %t1
25 RUN: llvm-nm %t2 | FileCheck %s -check-prefix BITCODE
26
27 RUN: rm -f %t2
28 RUN: llvm-lib /out:%t2 %t1
29 RUN: llvm-nm %t2 | FileCheck %s -check-prefix BITCODE
30
31 RUN: rm -f %t2
32 RUN: echo /out:%t2 %t1 > %t.rsp
33 RUN: llvm-lib @%t.rsp
34 RUN: llvm-nm %t2 | FileCheck %s -check-prefix BITCODE
35
36 BITCODE:          U SomeOtherFunction
37 BITCODE-NEXT:          T main
38 BITCODE-NEXT:          U puts
39 BITCODE-NEXT:          D var
40
41
42 Test we don't error with an archive with no symtab.
43 RUN: llvm-nm %p/Inputs/archive-test.a-gnu-no-symtab
44
45
46 Or in an archive with no symtab or string table.
47 RUN: llvm-nm %p/Inputs/archive-test.a-gnu-minimal
48
49
50 And don't crash when asked to print a non-existing symtab.
51 RUN: llvm-nm -M %p/Inputs/archive-test.a-gnu-minimal
52
53 Don't reject an empty archive.
54 RUN: llvm-nm %p/Inputs/archive-test.a-empty
55
56 This archive has an unaligned member and a unknown format member.
57 GNU AR is able to parse the unaligned member and warns about the member with
58 the unknown format. We should probably simply warn on both. For now just check
59 that we don't produce an error.
60 RUN: llvm-nm %p/Inputs/corrupt-archive.a