#ifndef LLVM_FUZZER_PLATFORM_H
#define LLVM_FUZZER_PLATFORM_H
#ifdef __linux__
#define LIBFUZZER_APPLE …
#define LIBFUZZER_FUCHSIA …
#define LIBFUZZER_LINUX …
#define LIBFUZZER_NETBSD …
#define LIBFUZZER_FREEBSD …
#define LIBFUZZER_WINDOWS …
#define LIBFUZZER_EMSCRIPTEN …
#elif __APPLE__
#define LIBFUZZER_APPLE …
#define LIBFUZZER_FUCHSIA …
#define LIBFUZZER_LINUX …
#define LIBFUZZER_NETBSD …
#define LIBFUZZER_FREEBSD …
#define LIBFUZZER_WINDOWS …
#define LIBFUZZER_EMSCRIPTEN …
#elif __NetBSD__
#define LIBFUZZER_APPLE …
#define LIBFUZZER_FUCHSIA …
#define LIBFUZZER_LINUX …
#define LIBFUZZER_NETBSD …
#define LIBFUZZER_FREEBSD …
#define LIBFUZZER_WINDOWS …
#define LIBFUZZER_EMSCRIPTEN …
#elif __FreeBSD__
#define LIBFUZZER_APPLE …
#define LIBFUZZER_FUCHSIA …
#define LIBFUZZER_LINUX …
#define LIBFUZZER_NETBSD …
#define LIBFUZZER_FREEBSD …
#define LIBFUZZER_WINDOWS …
#define LIBFUZZER_EMSCRIPTEN …
#elif _WIN32
#define LIBFUZZER_APPLE …
#define LIBFUZZER_FUCHSIA …
#define LIBFUZZER_LINUX …
#define LIBFUZZER_NETBSD …
#define LIBFUZZER_FREEBSD …
#define LIBFUZZER_WINDOWS …
#define LIBFUZZER_EMSCRIPTEN …
#elif __Fuchsia__
#define LIBFUZZER_APPLE …
#define LIBFUZZER_FUCHSIA …
#define LIBFUZZER_LINUX …
#define LIBFUZZER_NETBSD …
#define LIBFUZZER_FREEBSD …
#define LIBFUZZER_WINDOWS …
#define LIBFUZZER_EMSCRIPTEN …
#elif __EMSCRIPTEN__
#define LIBFUZZER_APPLE …
#define LIBFUZZER_FUCHSIA …
#define LIBFUZZER_LINUX …
#define LIBFUZZER_NETBSD …
#define LIBFUZZER_FREEBSD …
#define LIBFUZZER_WINDOWS …
#define LIBFUZZER_EMSCRIPTEN …
#else
#error "Support for your platform has not been implemented"
#endif
#if defined(_MSC_VER) && !defined(__clang__)
#define LIBFUZZER_MSVC …
#else
#define LIBFUZZER_MSVC …
#endif
#ifndef __has_attribute
#define __has_attribute …
#endif
#define LIBFUZZER_POSIX …
#ifdef __x86_64
#if __has_attribute(target)
#define ATTRIBUTE_TARGET_POPCNT …
#else
#define ATTRIBUTE_TARGET_POPCNT
#endif
#else
#define ATTRIBUTE_TARGET_POPCNT
#endif
#ifdef __clang__
#if __has_attribute(no_sanitize)
#define ATTRIBUTE_NO_SANITIZE_MEMORY …
#else
#define ATTRIBUTE_NO_SANITIZE_MEMORY
#endif
#define ALWAYS_INLINE …
#else
#define ATTRIBUTE_NO_SANITIZE_MEMORY
#define ALWAYS_INLINE
#endif
#if LIBFUZZER_WINDOWS
#define ATTRIBUTE_NO_SANITIZE_ADDRESS
#else
#define ATTRIBUTE_NO_SANITIZE_ADDRESS …
#endif
#if LIBFUZZER_WINDOWS
#define ATTRIBUTE_ALIGNED …
#define ATTRIBUTE_INTERFACE …
#define ATTRIBUTES_INTERFACE_TLS_INITIAL_EXEC …
#define ATTRIBUTE_NOINLINE …
#else
#define ATTRIBUTE_ALIGNED(X) …
#define ATTRIBUTE_INTERFACE …
#define ATTRIBUTES_INTERFACE_TLS_INITIAL_EXEC …
#define ATTRIBUTE_NOINLINE …
#endif
#if defined(__has_feature)
#if __has_feature(address_sanitizer)
#define ATTRIBUTE_NO_SANITIZE_ALL …
#elif __has_feature(memory_sanitizer)
#define ATTRIBUTE_NO_SANITIZE_ALL …
#else
#define ATTRIBUTE_NO_SANITIZE_ALL
#endif
#else
#define ATTRIBUTE_NO_SANITIZE_ALL
#endif
#endif