Files
swift-mirror/test/Availability/Inputs/AvailabilityDomains.h
Xi Ge e31c1cc7f8 CustomAvailability: avoid exposing the synthesized function for dynamic availability checking as an API entry
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
2025-11-10 09:26:28 -08:00

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