-
Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathExecutorChecks.cpp
61 lines (52 loc) · 2.49 KB
/
ExecutorChecks.cpp
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
///===--- ExecutorChecks.cpp - Static assertions to check struct layouts ---===///
///
/// This source file is part of the Swift.org open source project
///
/// Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors
/// Licensed under Apache License v2.0 with Runtime Library Exception
///
/// See https:///swift.org/LICENSE.txt for license information
/// See https:///swift.org/CONTRIBUTORS.txt for the list of Swift project authors
///
///===----------------------------------------------------------------------===///
///
/// This file is responsible for checking that the structures in ExecutorImpl.h
/// are laid out exactly the same as those in the ABI headers.
///
///===----------------------------------------------------------------------===///
#include "swift/Runtime/Concurrency.h"
#include "swift/ABI/Executor.h"
#include "swift/ABI/MetadataValues.h"
#include "swift/ABI/Task.h"
#include "ExecutorImpl.h"
// JobFlags
static_assert(sizeof(swift::JobFlags) == sizeof(SwiftJobFlags));
// JobKind
static_assert(sizeof(swift::JobKind) == sizeof(SwiftJobKind));
static_assert((SwiftJobKind)swift::JobKind::Task == SwiftTaskJobKind);
static_assert((SwiftJobKind)swift::JobKind::First_Reserved == SwiftFirstReservedJobKind);
// JobPriority
static_assert(sizeof(swift::JobPriority) == sizeof(SwiftJobPriority));
static_assert((SwiftJobPriority)swift::JobPriority::UserInteractive
== SwiftUserInteractiveJobPriority);
static_assert((SwiftJobPriority)swift::JobPriority::UserInteractive
== SwiftUserInteractiveJobPriority);
static_assert((SwiftJobPriority)swift::JobPriority::UserInitiated
== SwiftUserInitiatedJobPriority);
static_assert((SwiftJobPriority)swift::JobPriority::Default
== SwiftDefaultJobPriority);
static_assert((SwiftJobPriority)swift::JobPriority::Utility
== SwiftUtilityJobPriority);
static_assert((SwiftJobPriority)swift::JobPriority::Background
== SwiftBackgroundJobPriority);
static_assert((SwiftJobPriority)swift::JobPriority::Unspecified
== SwiftUnspecifiedJobPriority);
// Job (has additional fields not exposed via SwiftJob)
static_assert(sizeof(swift::Job) >= sizeof(SwiftJob));
// SerialExecutorRef
static_assert(sizeof(swift::SerialExecutorRef) == sizeof(SwiftExecutorRef));
// swift_clock_id
static_assert((SwiftClockId)swift::swift_clock_id_continuous
== SwiftContinuousClock);
static_assert((SwiftClockId)swift::swift_clock_id_suspending ==
SwiftSuspendingClock);