mirror of
https://github.com/apple/swift.git
synced 2026-02-27 18:26:24 +01:00
For dynamic features defined from a header, we synthesize a pure Clang function to check whether the feature should be enabled at runtime. Swift modules don't have capability to deserialize this clang predicate function, leading to crasher as a result. This change fixes the crasher by hiding the synthesized function to be a module internal one. rdar://164410957
34 lines
1013 B
C
34 lines
1013 B
C
#ifndef __AVAILABILITY_DOMAIN_TEST_H
|
|
#define __AVAILABILITY_DOMAIN_TEST_H
|
|
|
|
#include <availability_domain.h>
|
|
|
|
int dynamic_domain_pred();
|
|
|
|
CLANG_ENABLED_AVAILABILITY_DOMAIN(EnabledDomain);
|
|
CLANG_DISABLED_AVAILABILITY_DOMAIN(DisabledDomain);
|
|
CLANG_DYNAMIC_AVAILABILITY_DOMAIN(DynamicDomain, dynamic_domain_pred);
|
|
|
|
#define AVAIL 0
|
|
#define UNAVAIL 1
|
|
|
|
__attribute__((availability(domain : EnabledDomain, AVAIL))) void
|
|
available_in_enabled_domain(void);
|
|
|
|
__attribute__((availability(domain : EnabledDomain, UNAVAIL))) void
|
|
unavailable_in_enabled_domain(void);
|
|
|
|
__attribute__((availability(domain : DisabledDomain, AVAIL))) void
|
|
available_in_disabled_domain(void);
|
|
|
|
__attribute__((availability(domain : DisabledDomain, UNAVAIL))) void
|
|
unavailable_in_disabled_domain(void);
|
|
|
|
__attribute__((availability(domain : DynamicDomain, AVAIL))) void
|
|
available_in_dynamic_domain(void);
|
|
|
|
__attribute__((availability(domain : DynamicDomain, UNAVAIL))) void
|
|
unavailable_in_dynamic_domain(void);
|
|
|
|
#endif // __AVAILABILITY_DOMAIN_TEST_H
|