/* Zeta API - Z/inspection/compiler/completion.h
 ______  ______________  ___
|__   / |  ___|___  ___|/   \
  /  /__|  __|   |  |  /  -  \
 /______|_____|  |__| /__/ \__\
Copyright (C) 2006-2024 Manuel Sainz de Baranda y Goñi.
Copyright (C) 2018 Sofía Ortega Sosa.
Released under the terms of the GNU Lesser General Public License v3. */

#ifndef Z_inspection_compiler_completion_H
#define Z_inspection_compiler_completion_H

/* MARK: - Attributes */

#ifdef Z_COMPILER_ATTRIBUTE_ALIAS
#	define Z_COMPILER_HAS_ATTRIBUTE_ALIAS 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_ALWAYS_INLINE
#	define Z_COMPILER_HAS_ATTRIBUTE_ALWAYS_INLINE 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_API_ALIAS
#	define Z_COMPILER_HAS_ATTRIBUTE_API_ALIAS 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_API_EXPORT
#	define Z_COMPILER_HAS_ATTRIBUTE_API_EXPORT 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_API_IMPORT
#	define Z_COMPILER_HAS_ATTRIBUTE_API_IMPORT 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_API_EXPORT_ALIAS
#	define Z_COMPILER_HAS_ATTRIBUTE_API_EXPORT_ALIAS 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_API_WEAK_EXPORT
#	define Z_COMPILER_HAS_ATTRIBUTE_API_WEAK_EXPORT 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_EBCO
#	define Z_COMPILER_HAS_ATTRIBUTE_EBCO 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_INLINE
#	define Z_COMPILER_HAS_ATTRIBUTE_INLINE 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_MICROSOFT_STD_CALL
#	define Z_COMPILER_HAS_ATTRIBUTE_MICROSOFT_STD_CALL 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_NO_RETURN
#	define Z_COMPILER_HAS_ATTRIBUTE_NO_RETURN 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_NULL_TERMINATED
#	define Z_COMPILER_HAS_ATTRIBUTE_NULL_TERMINATED 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_PRIVATE
#	define Z_COMPILER_HAS_ATTRIBUTE_PRIVATE 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_PUBLIC
#	define Z_COMPILER_HAS_ATTRIBUTE_PUBLIC 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_THREAD_LOCAL
#	define Z_COMPILER_HAS_ATTRIBUTE_THREAD_LOCAL 1
#endif

#ifdef Z_COMPILER_ATTRIBUTE_WEAK
#	define Z_COMPILER_HAS_ATTRIBUTE_WEAK 1
#endif

/* MARK: - Built-in constants */

#ifdef Z_COMPILER_CONSTANT_FLOAT16_INFINITY
#	define Z_COMPILER_HAS_CONSTANT_FLOAT16_INFINITY 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT16_NAN
#	define Z_COMPILER_HAS_CONSTANT_FLOAT16_NAN 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT32_INFINITY
#	define Z_COMPILER_HAS_CONSTANT_FLOAT32_INFINITY 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT32_NAN
#	define Z_COMPILER_HAS_CONSTANT_FLOAT32_NAN 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT64_INFINITY
#	define Z_COMPILER_HAS_CONSTANT_FLOAT64_INFINITY 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT64_NAN
#	define Z_COMPILER_HAS_CONSTANT_FLOAT64_NAN 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT128_INFINITY
#	define Z_COMPILER_HAS_CONSTANT_FLOAT128_INFINITY 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT128_NAN
#	define Z_COMPILER_HAS_CONSTANT_FLOAT128_NAN 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT80_X87_INFINITY
#	define Z_COMPILER_HAS_CONSTANT_FLOAT80_X87_INFINITY 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT80_X87_NAN
#	define Z_COMPILER_HAS_CONSTANT_FLOAT80_X87_NAN 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT96_X87_INFINITY
#	define Z_COMPILER_HAS_CONSTANT_FLOAT96_X87_INFINITY 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT96_X87_NAN
#	define Z_COMPILER_HAS_CONSTANT_FLOAT96_X87_NAN 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT128_X87_INFINITY
#	define Z_COMPILER_HAS_CONSTANT_FLOAT128_X87_INFINITY 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT128_X87_NAN
#	define Z_COMPILER_HAS_CONSTANT_FLOAT128_X87_NAN 1
#endif

#ifdef Z_COMPILER_CONSTANT_CHAR_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_CHAR_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_UCHAR_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_UCHAR_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SCHAR_MINIMUM
#	define Z_COMPILER_HAS_CONSTANT_SCHAR_MINIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SCHAR_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_SCHAR_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SHORT_SIZE
#	define Z_COMPILER_HAS_CONSTANT_SHORT_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_SHORT_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_SHORT_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_USHORT_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_USHORT_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SSHORT_MINIMUM
#	define Z_COMPILER_HAS_CONSTANT_SSHORT_MINIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SSHORT_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_SSHORT_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_INT_SIZE
#	define Z_COMPILER_HAS_CONSTANT_INT_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_INT_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_INT_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_UINT_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_UINT_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SINT_MINIMUM
#	define Z_COMPILER_HAS_CONSTANT_SINT_MINIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SINT_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_SINT_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_LONG_SIZE
#	define Z_COMPILER_HAS_CONSTANT_LONG_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_LONG_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_LONG_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_ULONG_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_ULONG_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SLONG_MINIMUM
#	define Z_COMPILER_HAS_CONSTANT_SLONG_MINIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SLONG_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_SLONG_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_LLONG_SIZE
#	define Z_COMPILER_HAS_CONSTANT_LLONG_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_LLONG_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_LLONG_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_ULLONG_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_ULLONG_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SLLONG_MINIMUM
#	define Z_COMPILER_HAS_CONSTANT_SLLONG_MINIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SLLONG_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_SLLONG_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT_SIZE
#	define Z_COMPILER_HAS_CONSTANT_FLOAT_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_FLOAT_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT_INFINITY
#	define Z_COMPILER_HAS_CONSTANT_FLOAT_INFINITY 1
#endif

#ifdef Z_COMPILER_CONSTANT_FLOAT_NAN
#	define Z_COMPILER_HAS_CONSTANT_FLOAT_NAN 1
#endif

#ifdef Z_COMPILER_CONSTANT_DOUBLE_SIZE
#	define Z_COMPILER_HAS_CONSTANT_DOUBLE_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_DOUBLE_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_DOUBLE_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_DOUBLE_INFINITY
#	define Z_COMPILER_HAS_CONSTANT_DOUBLE_INFINITY 1
#endif

#ifdef Z_COMPILER_CONSTANT_DOUBLE_NAN
#	define Z_COMPILER_HAS_CONSTANT_DOUBLE_NAN 1
#endif

#ifdef Z_COMPILER_CONSTANT_LDOUBLE_SIZE
#	define Z_COMPILER_HAS_CONSTANT_LDOUBLE_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_LDOUBLE_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_LDOUBLE_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_LDOUBLE_INFINITY
#	define Z_COMPILER_HAS_CONSTANT_LDOUBLE_INFINITY 1
#endif

#ifdef Z_COMPILER_CONSTANT_LDOUBLE_NAN
#	define Z_COMPILER_HAS_CONSTANT_LDOUBLE_NAN 1
#endif

#ifdef Z_COMPILER_CONSTANT_WCHAR_SIZE
#	define Z_COMPILER_HAS_CONSTANT_WCHAR_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_WCHAR_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_WCHAR_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_WCHAR_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_WCHAR_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SIZE_SIZE
#	define Z_COMPILER_HAS_CONSTANT_SIZE_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_SIZE_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_SIZE_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_USIZE_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_USIZE_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SSIZE_MINIMUM
#	define Z_COMPILER_HAS_CONSTANT_SSIZE_MINIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SSIZE_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_SSIZE_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_UINTMAX_SIZE
#	define Z_COMPILER_HAS_CONSTANT_UINTMAX_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_UINTMAX_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_UINTMAX_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_UINTMAX_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_UINTMAX_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SINTMAX_SIZE
#	define Z_COMPILER_HAS_CONSTANT_SINTMAX_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_SINTMAX_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_SINTMAX_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_SINTMAX_MINIMUM
#	define Z_COMPILER_HAS_CONSTANT_SINTMAX_MINIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SINTMAX_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_SINTMAX_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_INTPTR_SIZE
#	define Z_COMPILER_HAS_CONSTANT_INTPTR_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_INTPTR_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_INTPTR_WIDTH 1
#endif

#ifdef Z_COMPILER_CONSTANT_UINTPTR_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_UINTPTR_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SINTPTR_MINIMUM
#	define Z_COMPILER_HAS_CONSTANT_SINTPTR_MINIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_SINTPTR_MAXIMUM
#	define Z_COMPILER_HAS_CONSTANT_SINTPTR_MAXIMUM 1
#endif

#ifdef Z_COMPILER_CONSTANT_POINTER_SIZE
#	define Z_COMPILER_HAS_CONSTANT_POINTER_SIZE 1
#endif

#ifdef Z_COMPILER_CONSTANT_POINTER_WIDTH
#	define Z_COMPILER_HAS_CONSTANT_POINTER_WIDTH 1
#endif

/* MARK: - Built-in magic constants */

#ifdef Z_COMPILER_MAGIC_CONSTANT_MANGLED_FUNCTION_NAME
#	define Z_COMPILER_HAS_MAGIC_CONSTANT_MANGLED_FUNCTION_NAME 1
#endif

/* MARK: - Built-in macros: Struture */

#ifdef Z_COMPILER_MACRO_MEMBER_OFFSET
#	define Z_COMPILER_HAS_MACRO_MEMBER_OFFSET 1
#endif

/* MARK: - Built-in macros: VAL */

#ifdef Z_COMPILER_MACRO_VAL_INITIALIZE
#	define Z_COMPILER_HAS_MACRO_VAL_INITIALIZE 1
#endif

#ifdef Z_COMPILER_MACRO_VAL_FINALIZE
#	define Z_COMPILER_HAS_MACRO_VAL_FINALIZE 1
#endif

#ifdef Z_COMPILER_MACRO_VAL_READ
#	define Z_COMPILER_HAS_MACRO_VAL_READ 1
#endif

#ifdef Z_COMPILER_MACRO_VAL_COPY
#	define Z_COMPILER_HAS_MACRO_VAL_COPY 1
#endif

/* MARK: - Built-in types */

#ifdef Z_COMPILER_TYPE_UINT8
#	define Z_COMPILER_HAS_TYPE_UINT8 1
#endif

#ifdef Z_COMPILER_TYPE_SINT8
#	define Z_COMPILER_HAS_TYPE_SINT8 1
#endif

#ifdef Z_COMPILER_TYPE_UINT16
#	define Z_COMPILER_HAS_TYPE_UINT16 1
#endif

#ifdef Z_COMPILER_TYPE_SINT16
#	define Z_COMPILER_HAS_TYPE_SINT16 1
#endif

#ifdef Z_COMPILER_TYPE_UINT32
#	define Z_COMPILER_HAS_TYPE_UINT32 1
#endif

#ifdef Z_COMPILER_TYPE_SINT32
#	define Z_COMPILER_HAS_TYPE_SINT32 1
#endif

#ifdef Z_COMPILER_TYPE_UINT64
#	define Z_COMPILER_HAS_TYPE_UINT64 1
#endif

#ifdef Z_COMPILER_TYPE_SINT64
#	define Z_COMPILER_HAS_TYPE_SINT64 1
#endif

#ifdef Z_COMPILER_TYPE_UINT128
#	define Z_COMPILER_HAS_TYPE_UINT128 1
#endif

#ifdef Z_COMPILER_TYPE_SINT128
#	define Z_COMPILER_HAS_TYPE_SINT128 1
#endif

#ifdef Z_COMPILER_TYPE_FLOAT16
#	define Z_COMPILER_HAS_TYPE_FLOAT16 1
#endif

#ifdef Z_COMPILER_TYPE_FLOAT32
#	define Z_COMPILER_HAS_TYPE_FLOAT32 1
#endif

#ifdef Z_COMPILER_TYPE_FLOAT64
#	define Z_COMPILER_HAS_TYPE_FLOAT64 1
#endif

#ifdef Z_COMPILER_TYPE_FLOAT128
#	define Z_COMPILER_HAS_TYPE_FLOAT128 1
#endif

#ifdef Z_COMPILER_TYPE_FLOAT80_X87
#	define Z_COMPILER_HAS_TYPE_FLOAT80_X87 1
#endif

#ifdef Z_COMPILER_TYPE_FLOAT96_X87
#	define Z_COMPILER_HAS_TYPE_FLOAT96_X87 1
#endif

#ifdef Z_COMPILER_TYPE_FLOAT128_X87
#	define Z_COMPILER_HAS_TYPE_FLOAT128_X87 1
#endif

#ifdef Z_COMPILER_TYPE_VAL
#	define Z_COMPILER_HAS_TYPE_VAL 1
#endif

/* MARK: - Suffix macros for built-in types */

#ifdef Z_COMPILER_LITERAL_UINT8
#	define Z_COMPILER_HAS_LITERAL_UINT8 1
#endif

#ifdef Z_COMPILER_LITERAL_SINT8
#	define Z_COMPILER_HAS_LITERAL_SINT8 1
#endif

#ifdef Z_COMPILER_LITERAL_UINT16
#	define Z_COMPILER_HAS_LITERAL_UINT16 1
#endif

#ifdef Z_COMPILER_LITERAL_SINT16
#	define Z_COMPILER_HAS_LITERAL_SINT16 1
#endif

#ifdef Z_COMPILER_LITERAL_UINT32
#	define Z_COMPILER_HAS_LITERAL_UINT32 1
#endif

#ifdef Z_COMPILER_LITERAL_SINT32
#	define Z_COMPILER_HAS_LITERAL_SINT32 1
#endif

#ifdef Z_COMPILER_LITERAL_UINT64
#	define Z_COMPILER_HAS_LITERAL_UINT64 1
#endif

#ifdef Z_COMPILER_LITERAL_SINT64
#	define Z_COMPILER_HAS_LITERAL_SINT64 1
#endif

#ifdef Z_COMPILER_LITERAL_UINT128
#	define Z_COMPILER_HAS_LITERAL_UINT128 1
#endif

#ifdef Z_COMPILER_LITERAL_SINT128
#	define Z_COMPILER_HAS_LITERAL_SINT128 1
#endif

#ifdef Z_COMPILER_LITERAL_FLOAT16
#	define Z_COMPILER_HAS_LITERAL_FLOAT16 1
#endif

#ifdef Z_COMPILER_LITERAL_FLOAT32
#	define Z_COMPILER_HAS_LITERAL_FLOAT32 1
#endif

#ifdef Z_COMPILER_LITERAL_FLOAT64
#	define Z_COMPILER_HAS_LITERAL_FLOAT64 1
#endif

#ifdef Z_COMPILER_LITERAL_FLOAT128
#	define Z_COMPILER_HAS_LITERAL_FLOAT128 1
#endif

#ifdef Z_COMPILER_LITERAL_FLOAT80_X87
#	define Z_COMPILER_HAS_LITERAL_FLOAT80_X87 1
#endif

#ifdef Z_COMPILER_LITERAL_FLOAT96_X87
#	define Z_COMPILER_HAS_LITERAL_FLOAT96_X87 1
#endif

#ifdef Z_COMPILER_LITERAL_FLOAT128_X87
#	define Z_COMPILER_HAS_LITERAL_FLOAT128_X87 1
#endif

/* MARK: - Complete implementations */

#ifndef Z_COMPILER_HAS_VAL
#	if	Z_COMPILER_HAS_TYPE_VAL		    && \
		Z_COMPILER_HAS_MACRO_VAL_INITIALIZE && \
		Z_COMPILER_HAS_MACRO_VAL_FINALIZE   && \
		Z_COMPILER_HAS_MACRO_VAL_READ

#		define Z_COMPILER_HAS_VAL 1
#	else
#		define Z_COMPILER_HAS_VAL 0
#	endif
#endif












































/* De aquí hasta el final está comprobado y OK */

/* MARK: - Built-ins: Functions */

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_ADD_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_ADD_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_AND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_AND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_ADD
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_ADD 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_AND
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_AND 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_NAND
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_NAND 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_OR
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_OR 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_SUBTRACT
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_SUBTRACT 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_GET_THEN_XOR
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_GET_THEN_XOR 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_NAND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_NAND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_OR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_OR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_SUBTRACT_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_SUBTRACT_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT8_ATOMIC_XOR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT8_ATOMIC_XOR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_ADD_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_ADD_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_AND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_AND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_ADD
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_ADD 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_AND
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_AND 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_NAND
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_NAND 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_OR
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_OR 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_SUBTRACT
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_SUBTRACT 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_GET_THEN_XOR
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_GET_THEN_XOR 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_NAND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_NAND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_OR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_OR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_SUBTRACT_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_SUBTRACT_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT8_ATOMIC_XOR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT8_ATOMIC_XOR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_ADD_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_ADD_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_AND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_AND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_ADD
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_ADD 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_AND
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_AND 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_NAND
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_NAND 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_OR
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_OR 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_SUBTRACT
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_SUBTRACT 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_GET_THEN_XOR
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_GET_THEN_XOR 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_NAND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_NAND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_OR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_OR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_SUBTRACT_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_SUBTRACT_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT16_ATOMIC_XOR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT16_ATOMIC_XOR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_ADD_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_ADD_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_AND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_AND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_ADD
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_ADD 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_AND
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_AND 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_NAND
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_NAND 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_OR
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_OR 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_SUBTRACT
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_SUBTRACT 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_GET_THEN_XOR
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_GET_THEN_XOR 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_NAND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_NAND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_OR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_OR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_SUBTRACT_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_SUBTRACT_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT16_ATOMIC_XOR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT16_ATOMIC_XOR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_ADD_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_ADD_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_AND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_AND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_ADD
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_ADD 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_AND
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_AND 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_NAND
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_NAND 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_OR
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_OR 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_SUBTRACT
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_SUBTRACT 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_GET_THEN_XOR
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_GET_THEN_XOR 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_NAND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_NAND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_OR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_OR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_SUBTRACT_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_SUBTRACT_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT32_ATOMIC_XOR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT32_ATOMIC_XOR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_ADD_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_ADD_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_AND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_AND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_ADD
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_ADD 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_AND
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_AND 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_NAND
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_NAND 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_OR
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_OR 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_SUBTRACT
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_SUBTRACT 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_GET_THEN_XOR
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_GET_THEN_XOR 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_NAND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_NAND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_OR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_OR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_SUBTRACT_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_SUBTRACT_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT32_ATOMIC_XOR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT32_ATOMIC_XOR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_ADD_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_ADD_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_AND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_AND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_ADD
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_ADD 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_AND
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_AND 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_NAND
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_NAND 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_OR
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_OR 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_SUBTRACT
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_SUBTRACT 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_GET_THEN_XOR
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_GET_THEN_XOR 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_NAND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_NAND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_OR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_OR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_SUBTRACT_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_SUBTRACT_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT64_ATOMIC_XOR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT64_ATOMIC_XOR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_ADD_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_ADD_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_AND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_AND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_ADD
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_ADD 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_AND
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_AND 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_NAND
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_NAND 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_OR
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_OR 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_SUBTRACT
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_SUBTRACT 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_GET_THEN_XOR
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_GET_THEN_XOR 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_NAND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_NAND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_OR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_OR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_SUBTRACT_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_SUBTRACT_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT64_ATOMIC_XOR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT64_ATOMIC_XOR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_ADD_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_ADD_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_AND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_AND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_ADD
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_ADD 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_AND
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_AND 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_NAND
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_NAND 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_OR
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_OR 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_SUBTRACT
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_SUBTRACT 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_GET_THEN_XOR
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_GET_THEN_XOR 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_NAND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_NAND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_OR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_OR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_SUBTRACT_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_SUBTRACT_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_UINT128_ATOMIC_XOR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_UINT128_ATOMIC_XOR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_ADD_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_ADD_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_AND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_AND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_ADD
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_ADD 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_AND
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_AND 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_NAND
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_NAND 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_OR
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_OR 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_SUBTRACT
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_SUBTRACT 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_GET_THEN_XOR
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_GET_THEN_XOR 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_NAND_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_NAND_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_OR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_OR_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_SET_IF_EQUAL
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_SET_IF_EQUAL 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_SUBTRACT_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_SUBTRACT_THEN_GET 1
#endif

#ifdef Z_COMPILER_FUNCTION_SINT128_ATOMIC_XOR_THEN_GET
#	define Z_COMPILER_HAS_FUNCTION_SINT128_ATOMIC_XOR_THEN_GET 1
#endif

/* MARK: - Built-ins: Traits */

#ifdef Z_COMPILER_TRAIT_SELECT_TYPE
#	define Z_COMPILER_HAS_TRAIT_SELECT_TYPE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_DIMENSION_COUNT
#	define Z_COMPILER_HAS_TRAIT_TYPE_DIMENSION_COUNT 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_ELEMENT_COUNT
#	define Z_COMPILER_HAS_TRAIT_TYPE_ELEMENT_COUNT 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_HAS_UNIQUE_OBJECT_REPRESENTATIONS
#	define Z_COMPILER_HAS_TRAIT_TYPE_HAS_UNIQUE_OBJECT_REPRESENTATIONS 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_HAS_TRIVIAL_DESTRUCTOR
#	define Z_COMPILER_HAS_TRAIT_TYPE_HAS_TRIVIAL_DESTRUCTOR 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_HAS_VIRTUAL_DESTRUCTOR
#	define Z_COMPILER_HAS_TRAIT_TYPE_HAS_VIRTUAL_DESTRUCTOR 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_ABSTRACT
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_ABSTRACT 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_AGGREGATE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_AGGREGATE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_ARITHMETIC
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_ARITHMETIC 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_ARRAY
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_ARRAY 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_ASSIGNABLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_ASSIGNABLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_BASE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_BASE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_COMPLETE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_COMPLETE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_COMPOUND
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_COMPOUND 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_CONST
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_CONST 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_CONSTRUCTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_CONSTRUCTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_CONVERTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_CONVERTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_DATA_MEMBER_POINTER
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_DATA_MEMBER_POINTER 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_DESTRUCTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_DESTRUCTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_EMPTY
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_EMPTY 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_ENUMERATION
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_ENUMERATION 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_FINAL
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_FINAL 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_INTEGRAL
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_INTEGRAL 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_INTERFACE_CLASS
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_INTERFACE_CLASS 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_FLOATING_POINT
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_FLOATING_POINT 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_FUNCTION
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_FUNCTION 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_FUNDAMENTAL
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_FUNDAMENTAL 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_LITERAL
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_LITERAL 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_LVALUE_REFERENCE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_LVALUE_REFERENCE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_MEMBER_FUNCTION_POINTER
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_MEMBER_FUNCTION_POINTER 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_MEMBER_POINTER
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_MEMBER_POINTER 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_ASSIGNABLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_ASSIGNABLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_CONSTRUCTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_CONSTRUCTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_COPY_ASSIGNABLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_COPY_ASSIGNABLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_COPY_CONSTRUCTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_COPY_CONSTRUCTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_DESTRUCTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_DESTRUCTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_NOTHROW_MOVE_ASSIGNABLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_NOTHROW_MOVE_ASSIGNABLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_OBJECT
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_OBJECT 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_POD
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_POD 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_POINTER
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_POINTER 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_POLYMORPHIC
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_POLYMORPHIC 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_REFERENCE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_REFERENCE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_RVALUE_REFERENCE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_RVALUE_REFERENCE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_SAME
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_SAME 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_SCALAR
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_SCALAR 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_SEALED
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_SEALED 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_SIGNED
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_SIGNED 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_STD_LAYOUT
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_STD_LAYOUT 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_STRUCTURE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_STRUCTURE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIAL
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIAL 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_ASSIGNABLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_ASSIGNABLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_CONSTRUCTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_CONSTRUCTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_COPY_ASSIGNABLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_COPY_ASSIGNABLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_COPYABLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_COPYABLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_TRIVIALLY_DESTRUCTIBLE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_TRIVIALLY_DESTRUCTIBLE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_UNION
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_UNION 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_UNSIGNED
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_UNSIGNED 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_VOID
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_VOID 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_IS_VOLATILE
#	define Z_COMPILER_HAS_TRAIT_TYPE_IS_VOLATILE 1
#endif

#ifdef Z_COMPILER_TRAIT_TYPE_UNDERLYING_TYPE
#	define Z_COMPILER_HAS_TRAIT_TYPE_UNDERLYING_TYPE 1
#endif

#endif /* Z_inspection_compiler_completion_H */
