diff options
Diffstat (limited to 'llvm/test/Object')
-rw-r--r-- | llvm/test/Object/X86/irsymtab-asm.ll | 17 | ||||
-rw-r--r-- | llvm/test/Object/X86/irsymtab-bad-alias.ll | 15 | ||||
-rw-r--r-- | llvm/test/Object/X86/irsymtab.ll | 20 |
3 files changed, 52 insertions, 0 deletions
diff --git a/llvm/test/Object/X86/irsymtab-asm.ll b/llvm/test/Object/X86/irsymtab-asm.ll new file mode 100644 index 00000000000..487dc37b657 --- /dev/null +++ b/llvm/test/Object/X86/irsymtab-asm.ll @@ -0,0 +1,17 @@ +; Check that we correctly handle the case where we have inline asm and the +; target is not registered. In this case we shouldn't emit an irsymtab. + +; RUN: llvm-as -o %t %s +; RUN: llvm-bcanalyzer -dump %t | FileCheck --check-prefix=AS %s + +; AS-NOT: <SYMTAB_BLOCK + +; RUN: opt -o %t2 %s +; RUN: llvm-bcanalyzer -dump %t2 | FileCheck --check-prefix=OPT %s + +; OPT: <SYMTAB_BLOCK + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +module asm "ret" diff --git a/llvm/test/Object/X86/irsymtab-bad-alias.ll b/llvm/test/Object/X86/irsymtab-bad-alias.ll new file mode 100644 index 00000000000..c54436d5921 --- /dev/null +++ b/llvm/test/Object/X86/irsymtab-bad-alias.ll @@ -0,0 +1,15 @@ +; Check that we do not create an irsymtab for modules with malformed IR. + +; RUN: opt -o %t %s +; RUN: llvm-bcanalyzer -dump %t | FileCheck %s + +; CHECK-NOT: <SYMTAB_BLOCK + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +@g1 = global i32 1 +@g2 = global i32 2 + +@a = alias i32, inttoptr(i32 sub (i32 ptrtoint (i32* @g1 to i32), + i32 ptrtoint (i32* @g2 to i32)) to i32*) diff --git a/llvm/test/Object/X86/irsymtab.ll b/llvm/test/Object/X86/irsymtab.ll new file mode 100644 index 00000000000..7a202f77507 --- /dev/null +++ b/llvm/test/Object/X86/irsymtab.ll @@ -0,0 +1,20 @@ +; RUN: env LLVM_OVERRIDE_PRODUCER=producer opt -o %t %s +; RUN: llvm-bcanalyzer -dump -show-binary-blobs %t | FileCheck --check-prefix=BCA %s + +; BCA: <SYMTAB_BLOCK +; Version stored at offset 0. +; BCA-NEXT: <BLOB abbrevid=4/> blob data = '\x00\x00\x00\x00\x06\x00\x00\x00\x08\x00\x00\x00D\x00\x00\x00\x01\x00\x00\x00P\x00\x00\x00\x00\x00\x00\x00P\x00\x00\x00\x02\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x0E\x00\x00\x00\x18\x00\x00\x00&\x00\x00\x00\x0B\x00\x00\x001\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\xFF\xFF\xFF\xFF\x00$\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\xFF\xFF\xFF\xFF\x08$\x00\x00' +; BCA-NEXT: </SYMTAB_BLOCK> +; BCA-NEXT: <STRTAB_BLOCK +; BCA-NEXT: <BLOB abbrevid=4/> blob data = 'foobarproducerx86_64-unknown-linux-gnuirsymtab.ll' +; BCA-NEXT: </STRTAB_BLOCK> + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" +source_filename = "irsymtab.ll" + +define void @foo() { + ret void +} + +declare void @bar() |