mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Don't delete the OS declaration of `exit` because the concurrency shims aren't always imported, and so the shim declaration might not always be available. Don't override the OS declaration of `exit` in the concurrency shims since we can't just delete the OS one. Instead, set up internal shims just for building Concurrency that forward declares `exit`.
37 lines
869 B
Swift
37 lines
869 B
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %target-build-swift %S/Inputs/Inlining.swift -parse-as-library -g -o %t/Inlining
|
|
// RUN: %target-build-swift %s -parse-as-library -g -o %t/DwarfReader
|
|
// RUN: %target-run %t/DwarfReader %t/Inlining | %FileCheck %s
|
|
|
|
// REQUIRES: OS=linux-gnu
|
|
// REQUIRES: backtracing
|
|
|
|
@_spi(DwarfTest) import _Backtracing
|
|
#if canImport(Darwin)
|
|
import Darwin
|
|
#elseif canImport(SwiftWASILibc)
|
|
import SwiftWASILibc
|
|
#elseif canImport(ucrt)
|
|
import ucrt
|
|
#elseif canImport(SwiftGlibc)
|
|
import SwiftGlibc
|
|
#endif
|
|
|
|
@main
|
|
struct DwarfReader {
|
|
static func main() {
|
|
if CommandLine.argc != 2 {
|
|
print("usage: DwarfReader <path-to-binary>")
|
|
return
|
|
}
|
|
|
|
// CHECK: {{.*}}/Inlining is a {{32|64}}-bit ELF image
|
|
// CHECK: Units:
|
|
// CHECK: Call Sites:
|
|
|
|
if !testDwarfReaderFor(path: CommandLine.arguments[1]) {
|
|
exit(1)
|
|
}
|
|
}
|
|
}
|