native 0.0.1
Vectors, masks and wide register packs for C++26
Loading...
Searching...
No Matches
attributes.h File Reference

Compiler attributes for host code, with shader-safe shared modifiers. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define native_has_attribute(__x)
 __has_attribute(x)
#define native_diagnose_if(condition, message)
 Reject a call when Clang can prove that its arguments violate a precondition.
#define native_has_declspec_attribute(__x)
 portable __has_declspec_attribute(__x)
#define native_const
 [[const]] is not const
#define native_pure
 [[pure]]
#define native_lifetimebound
 [[lifetimebound]]
#define native_noescape
 portable __attribute__((noescape))
#define native_nodiscard   [[nodiscard]]
 C++17 [[nodiscard]].
#define native_inline   inline
 inline [[always_inline]]
#define native_flatten
 portable [[flatten]]
#define native_artificial
 [[artificial]].
#define native_noinline
 [[noinline]]
#define native_optnone
 [[optnone]]
#define native_weak
 [[weak]]
#define native_internal_linkage
 [[internal_linkage]]
#define native_preferred_name(__x)
 portable [[clang::preferred_name(x)]] annotations
#define native_visibility(...)
 [[visibility(x)]]
#define native_exclude_from_explicit_instantiation
 exclude this member from explicit template instantiation.
#define native_hidden   native_visibility("hidden") native_exclude_from_explicit_instantiation
 [[visibility("hidden")]] [[exclude_from_explicit_instantiations]]
#define native_constinit
 constinit
#define native_uninitialized
 [[clang::uninitialized]]
#define native_reinitializes
 [[clang::reinitializes]]
#define native_target(x)
 this indicates a required feature set for the current multiversioned function.
#define native_target_clones(...)
 this indicates a required feature set for the current multiversioned function.
#define native_hot
 [[hot]]
#define native_cold
 [[cold]]
#define native_consumable(__x)
 Each class that uses any typestate annotations must first be marked using this attribute.
#define native_callable_when(...)
#define native_param_typestate(...)
#define native_return_typestate(...)
#define native_moving   native_return_typestate("consumed") native_param_typestate("unconsumed")
 [[return_typestate("consumed")]] [[param_typestate("unconsumed")]]
#define native_set_typestate(...)
#define native_test_typestate
#define native_test_typestate(...)
#define native_no_thread_safety_analysis
#define native_lockable
#define native_scoped_lockable
#define native_guarded_var
#define native_pt_guarded_var
#define native_guarded_by(x)
#define native_pt_guarded_by(x)
#define native_acquired_before(...)
#define native_acquired_after(...)
#define native_exclusive_lock_function(...)
#define native_shared_trylock_function(...)
#define native_unlock_function(...)
#define native_lock_returned(__x)
#define native_locks_excluded(...)
#define native_exclusive_locks_required(...)
#define native_shared_locks_required(...)
#define native_acquire_handle(__x)
 indicates this method returns an acquired resource
#define native_release_handle(__x)
 Indicates this argument is an acquired resource that is being released with a tag.
#define native_use_handle(__x)
 indicates this argument is a use of a resource, but does not release it.
#define native_align(x)
 Align a declaration, including a function entry, when supported.
#define native_assume_aligned(x)
 Indicates a function returns a pointer with alignment at least x.
#define native_align_value(x)
 [[align_value(x)]]
#define native_malloc
 [[malloc]]
#define native_alloc_align(__N)
 [[alloc_align(N)]]
#define native_alloc_size(__N)
 [[alloc_size(x)]]
#define native_null_terminated_string_arg(x)
 The N th argumnt is a null terminated string.
#define native_callback(...)
 [[callback(...)]]
#define native_noreturn
 gcc-style [[noreturn]]
#define native_returns_nonnull
 [[returns_nonnnull]]
#define native_nonnull(...)
 portable [[nonnnull(...)]]
#define native_Nonnull
 _Nonnull
#define native_Nullable
 _Nullable
#define native_Null_unspecified
 _Null_unspecified
#define native_host
 portable __host__ for CUDA
#define native_device
 portable __device__ for CUDA
#define native_global
 portable __global__ for CUDA
#define native_hd   native_host native_device
 applies both native_host and native_device
#define native_nonblocking
 Declares a function does not block.
#define native_blocking
 Declares a function potentially blocks. Prevents inference of native_nonblocking.
#define native_nonallocating
 Declares a function does not allocate heap memory.
#define native_allocating
 Declares a function potentially allocates heap memory. Prevents inference of nonallocating.
#define native_noalloc(__x)
 a bool parameterized version of native_nonallocating
#define native_noblock(__x)
 a bool parameterized version of native_nonblocking

Detailed Description

Compiler attributes for host code, with shader-safe shared modifiers.

Definition in file attributes.h.