mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-04-28 03:17:08 +03:00
68bf81432c
upstream commit 5f5a050569a95ecc40a426f0c3666ae7ef987ede
50 lines
1.3 KiB
C
Vendored
50 lines
1.3 KiB
C
Vendored
#pragma once
|
|
|
|
#if defined(__has_feature) && __has_feature(bounds_attributes)
|
|
#define __has_ptrcheck 1
|
|
#else
|
|
#define __has_ptrcheck 0
|
|
#endif
|
|
|
|
#if __has_ptrcheck
|
|
|
|
#define __single __attribute__((__single__))
|
|
#define __unsafe_indexable __attribute__((__unsafe_indexable__))
|
|
|
|
#else
|
|
|
|
#define __single
|
|
#define __unsafe_indexable
|
|
#define __counted_by(N)
|
|
#define __counted_by_or_null(N)
|
|
#define __sized_by(N)
|
|
#define __sized_by_or_null(N)
|
|
#define __ended_by(E)
|
|
|
|
#define __terminated_by(T)
|
|
#define __null_terminated
|
|
|
|
/* __ptrcheck_abi_assume_indexable and __ptrcheck_abi_assume_bidi_indexable intentionally not defined */
|
|
#define __ptrcheck_abi_assume_single()
|
|
#define __ptrcheck_abi_assume_unsafe_indexable()
|
|
|
|
#define __unsafe_forge_bidi_indexable(T, P, S) ((T)(P))
|
|
#define __unsafe_forge_single(T, P) ((T)(P))
|
|
#define __unsafe_forge_terminated_by(T, P, E) ((T)(P))
|
|
#define __unsafe_forge_null_terminated(T, P) ((T)(P))
|
|
|
|
#define __terminated_by_to_indexable(P) (P)
|
|
#define __unsafe_terminated_by_to_indexable(P) (P)
|
|
#define __null_terminated_to_indexable(P) (P)
|
|
#define __unsafe_null_terminated_to_indexable(P) (P)
|
|
#define __unsafe_terminated_by_from_indexable(T, P, ...) (P)
|
|
#define __unsafe_null_terminated_from_indexable(P, ...) (P)
|
|
|
|
#define __array_decay_dicards_count_in_parameters
|
|
|
|
#define __ptrcheck_unavailable
|
|
#define __ptrcheck_unavailable_r(REPLACEMENT)
|
|
|
|
|
|
#endif
|