Files
zig/lib/compiler/aro/include/ptrcheck.h
Andrew Kelley 68bf81432c update aro to latest
upstream commit 5f5a050569a95ecc40a426f0c3666ae7ef987ede
2026-04-11 15:17:46 -07:00

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