File tree Expand file tree Collapse file tree 2 files changed +73
-1
lines changed Expand file tree Collapse file tree 2 files changed +73
-1
lines changed Original file line number Diff line number Diff line change 16
16
// DEP: _abort
17
17
// DEP: _clock_gettime
18
18
// DEP: _exit
19
- // DEP: _fprintf
20
19
// DEP: _free
21
20
// DEP: _malloc
22
21
// DEP: _memmove
Original file line number Diff line number Diff line change
1
+ // RUN: %empty-directory(%t)
2
+ // RUN: %target-swift-frontend -target %target-cpu-apple-macos14 -disable-availability-checking -parse-as-library -enable-experimental-feature Embedded %s -c -o %t/a.o -Osize
3
+ // RUN: %target-clang -x c -std=c11 -I %swift_obj_root/include -c %S/Inputs/executor.c -o %t/executor.o -Oz -DNDEBUG -DDEBUG_EXECUTOR=0
4
+ // RUN: %target-clang %t/a.o %t/executor.o -o %t/a.out %swift_obj_root/lib/swift/embedded/%target-cpu-apple-macos/libswift_Concurrency.a -dead_strip
5
+
6
+ // RUN: grep DEP\: %s | sed 's#// DEP\: ##' | sort > %t/allowed-dependencies.txt
7
+
8
+ // RUN: %llvm-nm --undefined-only --format=just-symbols %t/a.out | sort | tee %t/actual-dependencies.txt
9
+
10
+ // Fail if there is any entry in actual-dependencies.txt that's not in allowed-dependencies.txt
11
+ // RUN: test -z "`comm -13 %t/allowed-dependencies.txt %t/actual-dependencies.txt`"
12
+
13
+ // DEP: ___stack_chk_fail
14
+ // DEP: ___stack_chk_guard
15
+ // DEP: _abort
16
+ // DEP: _clock_gettime
17
+ // DEP: _exit
18
+ // DEP: _free
19
+ // DEP: _malloc
20
+ // DEP: _memmove
21
+ // DEP: _memset
22
+ // DEP: _memset_s
23
+ // DEP: _nanosleep
24
+ // DEP: _posix_memalign
25
+ // DEP: _putchar
26
+ // DEP: _puts
27
+ // DEP: _strlen
28
+ // DEP: _vprintf
29
+ // DEP: _vsnprintf
30
+
31
+ // RUN: %target-run %t/a.out | %FileCheck %s
32
+
33
+ // REQUIRES: swift_in_compiler
34
+ // REQUIRES: swift_stdlib_no_asserts
35
+ // REQUIRES: executable_test
36
+ // REQUIRES: optimized_stdlib
37
+ // REQUIRES: OS=macosx
38
+
39
+ import _Concurrency
40
+
41
+ public func test( ) async -> Int {
42
+ print ( " test " )
43
+ let t = Task {
44
+ print ( " return 42 " )
45
+ return 42
46
+ }
47
+ print ( " await " )
48
+ let v = await t. value
49
+ print ( " return " )
50
+ return v
51
+ }
52
+
53
+ @main
54
+ struct Main {
55
+ static func main( ) async {
56
+ print ( " main " )
57
+ // CHECK: main
58
+ let t = Task {
59
+ print ( " task " )
60
+ let x = await test ( )
61
+ print ( x == 42 ? " 42 " : " ??? " )
62
+ }
63
+ print ( " after task " )
64
+ await t. value
65
+ // CHECK: after task
66
+ // CHECK: task
67
+ // CHECK: test
68
+ // CHECK: await
69
+ // CHECK: return 42
70
+ // CHECK: return
71
+ // CHECK: 42
72
+ }
73
+ }
You can’t perform that action at this time.
0 commit comments