From 4c47434b25ea4683ff1794e2d1b24eaa16b5e30e Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Mon, 5 Jun 2017 21:26:39 +0000 Subject: CodeGen: add support for emitting ObjC image info This ensures that we can emit the ObjC Image Info structure on COFF and ELF as well. The frontend already would attempt to emit this information but would get dropped when generating assembly or an object file. llvm-svn: 304736 --- llvm/test/Object/objc-imageinfo-coff.ll | 14 ++++++++++++++ llvm/test/Object/objc-imageinfo-elf.ll | 14 ++++++++++++++ llvm/test/Object/objc-imageinfo-macho.ll | 14 ++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 llvm/test/Object/objc-imageinfo-coff.ll create mode 100644 llvm/test/Object/objc-imageinfo-elf.ll create mode 100644 llvm/test/Object/objc-imageinfo-macho.ll (limited to 'llvm/test/Object') diff --git a/llvm/test/Object/objc-imageinfo-coff.ll b/llvm/test/Object/objc-imageinfo-coff.ll new file mode 100644 index 00000000000..cab0103b5f4 --- /dev/null +++ b/llvm/test/Object/objc-imageinfo-coff.ll @@ -0,0 +1,14 @@ +; RUN: llc -mtriple x86_64-unknown-windows-msvc -filetype asm -o - %s | FileCheck %s + +!llvm.module.flags = !{!0, !1, !2, !3} + +!0 = !{i32 1, !"Objective-C Version", i32 2} +!1 = !{i32 1, !"Objective-C Image Info Version", i32 0} +!2 = !{i32 1, !"Objective-C Image Info Section", !".objc_imageinfo$B"} +!3 = !{i32 1, !"Objective-C Garbage Collection", i32 2} + +; CHECK: .section .objc_imageinfo$B,"dr" +; CHECK: OBJC_IMAGE_INFO: +; CHECK: .long 0 +; CHECK: .long 2 + diff --git a/llvm/test/Object/objc-imageinfo-elf.ll b/llvm/test/Object/objc-imageinfo-elf.ll new file mode 100644 index 00000000000..7979e01457f --- /dev/null +++ b/llvm/test/Object/objc-imageinfo-elf.ll @@ -0,0 +1,14 @@ +; RUN: llc -mtriple x86_64-unknown-linux-gnu -filetype asm -o - %s | FileCheck %s + +!llvm.module.flags = !{!0, !1, !2, !3} + +!0 = !{i32 1, !"Objective-C Version", i32 2} +!1 = !{i32 1, !"Objective-C Image Info Version", i32 0} +!2 = !{i32 1, !"Objective-C Image Info Section", !"objc_imageinfo"} +!3 = !{i32 1, !"Objective-C Garbage Collection", i32 2} + +; CHECK: .section objc_imageinfo +; CHECK: OBJC_IMAGE_INFO: +; CHECK: .long 0 +; CHECK: .long 2 + diff --git a/llvm/test/Object/objc-imageinfo-macho.ll b/llvm/test/Object/objc-imageinfo-macho.ll new file mode 100644 index 00000000000..90bc9d91a5d --- /dev/null +++ b/llvm/test/Object/objc-imageinfo-macho.ll @@ -0,0 +1,14 @@ +; RUN: llc -mtriple x86_64-apple-ios -filetype asm -o - %s | FileCheck %s + +!llvm.module.flags = !{!0, !1, !2, !3} + +!0 = !{i32 1, !"Objective-C Version", i32 2} +!1 = !{i32 1, !"Objective-C Image Info Version", i32 0} +!2 = !{i32 1, !"Objective-C Image Info Section", !"__DATA,__objc_imageinfo,regular,no_dead_strip"} +!3 = !{i32 1, !"Objective-C Garbage Collection", i32 2} + +; CHECK: .section __DATA,__objc_imageinfo,regular,no_dead_strip +; CHECK: L_OBJC_IMAGE_INFO: +; CHECK: .long 0 +; CHECK: .long 2 + -- cgit v1.2.3