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 RUN: rm -f %t2 RUN: llvm-lib /out:%t2 %t1 RUN: llvm-nm %t2 | FileCheck %s -check-prefix BITCODE RUN: rm -f %t2 RUN: echo /out:%t2 %t1 > %t.rsp RUN: llvm-lib @%t.rsp 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 RUN: llvm-nm %p/Inputs/thin.a | FileCheck %s -check-prefix THIN THIN: IsNAN.o: THIN: 00000014 T _ZN4llvm5IsNANEd THIN: 00000000 T _ZN4llvm5IsNANEf THIN: U __isnan THIN: U __isnanf