mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The original support for embedded bitcode used appending linkage for the magic internal variables that hold the bitcode and command line options, but that private linkage is a better fit. The only real reason for appending linkage was to prevent those variables from being optimized away. r269706 limits the use of appending linkage so that it cannot be used for those variables, so this switches to use private linkage and keep the variables alive with llvm.compiler.used. This is basically copied from clang r269679. rdar://problem/28685198. As of the swift-3.1-branch versions of Clang/LLVM, embedded bitcode is now working well enough that the tests can be reenabled. rdar://problem/26247134
19 lines
674 B
Swift
19 lines
674 B
Swift
// REQUIRES: CPU=x86_64
|
|
// RUN: %target-swift-frontend -c -module-name someModule -embed-bitcode-marker -o %t.o %s
|
|
// RUN: llvm-objdump -macho -section="__LLVM,__bitcode" %t.o | %FileCheck -check-prefix=MARKER %s
|
|
// RUN: llvm-objdump -macho -section="__LLVM,__swift_cmdline" %t.o | %FileCheck -check-prefix=MARKER-CMD %s
|
|
|
|
// This file tests Mach-O file output, but Linux variants do not produce Mach-O
|
|
// files.
|
|
// UNSUPPORTED: OS=linux-gnu
|
|
// UNSUPPORTED: OS=linux-gnueabihf
|
|
// UNSUPPORTED: OS=freebsd
|
|
|
|
// MARKER: Contents of (__LLVM,__bitcode) section
|
|
// MARKER-NEXT: 00
|
|
// MARKER-CMD: Contents of (__LLVM,__swift_cmdline) section
|
|
// MARKER-CMD-NEXT: 00
|
|
|
|
func test() {
|
|
}
|