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 we just produce an error for the unknown format. RUN: not llvm-nm %p/Inputs/corrupt-archive.a 2>&1 | FileCheck %s -check-prefix CORRUPT CORRUPT: corrupt-archive.a(trivial-object-test2.elf-x86-64) Insufficient alignment 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