-
Notifications
You must be signed in to change notification settings - Fork 10.4k
/
Copy pathmodules-globals-many.swift
46 lines (30 loc) · 1.3 KB
/
modules-globals-many.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// RUN: %empty-directory(%t)
// RUN: split-file %s %t
// RUN: %target-swift-frontend -emit-module -I %t -o %t/MyModuleA.swiftmodule %t/MyModuleA.swift -enable-experimental-feature Embedded -parse-as-library
// RUN: %target-swift-frontend -emit-module -I %t -o %t/MyModuleB.swiftmodule %t/MyModuleB.swift -enable-experimental-feature Embedded -parse-as-library
// RUN: %target-swift-frontend -emit-module -I %t -o %t/MyModuleC.swiftmodule %t/MyModuleC.swift -enable-experimental-feature Embedded -parse-as-library
// RUN: %target-swift-frontend -emit-ir -I %t %t/Main.swift -enable-experimental-feature Embedded -parse-as-library | %FileCheck %s
// REQUIRES: swift_in_compiler
// REQUIRES: swift_feature_Embedded
// Dependencies look like this:
//
// ┌─── ModuleB ◀─┐
// ModuleA ◀──┤ ├─── Main
// └─── ModuleC ◀─┘
//--- MyModuleA.swift
public var global = 0
public func foo() { global += 1 }
//--- MyModuleB.swift
import MyModuleA
public func foo() { global += 1 }
//--- MyModuleC.swift
import MyModuleA
public func foo() { global += 1 }
//--- Main.swift
import MyModuleB
import MyModuleC
public func main() {
MyModuleB.foo()
MyModuleC.foo()
}
// CHECK: @"$e9MyModuleA6globalSivp" = {{.*}}global %TSi zeroinitializer