Add function for testing string attributes to InvokeInst and CallSite. NFC.
[oota-llvm.git] / test / Object / nm-archive.test
index 922983c887fbee5f4b43c080430d64f577764b07..8f8cdbe9f08cf05a12e0782690695fa3779b1674 100644 (file)
@@ -1,25 +1,69 @@
-RUN: llvm-nm %p/Inputs/archive-test.a-coff-i386 \
+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
 
-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
 
-BITCODE:          U SomeOtherFunction
-BITCODE-NEXT:          T main
-BITCODE-NEXT:          U puts
+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