hs-bindgen-1.0.0.0: test-artefacts/headers/golden/functions/fun_attributes.h
/** @file
* Attributes on functions
*
* Examples from https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
*/
typedef struct {} FILE;
typedef int size_t;
// access (access-mode, ref-index)
// access (access-mode, ref-index, size-index)
// SKIPPED (unsupported by clang)
// alias ("target")
static void __f1 () {
return;
}
void f1 () __attribute__ ((weak, alias ("__f1")));
// alloc_align (position)
void* my_memalign (size_t, size_t) __attribute__ ((alloc_align (1)));
// alloc_size (position)
// alloc_size (position-1, position-2)
void* my_calloc (size_t, size_t) __attribute__ ((alloc_size (1, 2)));
void* my_realloc (void*, size_t) __attribute__ ((alloc_size (2)));
// assume_aligned (alignment)
// assume_aligned (alignment, offset)
void* my_alloc1 (size_t) __attribute__((assume_aligned (16)));
void* my_alloc2 (size_t) __attribute__((assume_aligned (32, 8)));
// const
int square (int) __attribute__ ((const));
// copy
// copy (function)
// SKIPPED (unsupported by clang)
// deprecated
// deprecated (msg)
int old_fn_deprecated () __attribute__ ((deprecated("Use new_function instead")));
// unavailable
// unavailable (msg)
int old_fn_unavailable () __attribute__((unavailable("Use new_function instead")));
// format (archetype, string-index, first-to-check)
extern int
my_printf (void *my_object, const char *my_format, ...)
__attribute__ ((format (printf, 2, 3)));
// format_arg (string-index)
extern char *
my_dgettext (char *my_domain, const char *my_format)
__attribute__ ((format_arg (2)));
// SKIPPED: ifunc ("resolver")
// malloc
// malloc (deallocator)
// malloc (deallocator, ptr-index)
// SKIPPED: only "malloc" with no arguments is supported by clang.
__attribute__ ((malloc))
FILE* fdopen (int, const char*);
// no_sanitize ("sanitize_option")
void __attribute__ ((no_sanitize ("alignment", "object-size"))) f2 ();
// nonnull
// nonnull (arg-index, …)
extern void *
my_memcpy (void *dest, const void *src, size_t len)
__attribute__((nonnull (1, 2)));
extern void *
my_memcpy (void *dest, const void *src, size_t len)
__attribute__((nonnull));
// nonnull_if_nonzero
// nonnull_if_nonzero (arg-index, arg2-index)
// nonnull_if_nonzero (arg-index, arg2-index, arg3-index)
// SKIPPED: unsupported by clang
// noplt
// SKIPPED: unsupported by clang
// noreturn
void fatal () __attribute__ ((noreturn));
// null_terminated_string_arg
// null_terminated_string_arg (N)
// SKIPPED: unsupported by clang
// pure
int hash (char *) __attribute__ ((pure));
// returns_nonnull
extern void *
mymalloc (size_t len) __attribute__((returns_nonnull));
// section ("section-name")
extern void foobar (void) __attribute__ ((section ("bar")));
// symver ("name2@nodename") ¶
// SKIPPED: unsupported by clang
// target (string, …)
int core2_func (void) __attribute__ ((__target__ ("arch=core2")));
int sse3_func (void) __attribute__ ((__target__ ("sse3")));
// visibility ("visibility_type")
void __attribute__ ((visibility ("protected"))) f3 ();
int i __attribute__ ((visibility ("hidden")));
// warn_unused_result
int fn () __attribute__ ((warn_unused_result));
// weakref
// weakref ("target")
/* Given the declaration: */
extern int y (void);
/* the following... */
static int z1 (void) __attribute__ ((weakref ("y")));
/* is equivalent to... */
static int z2 (void) __attribute__ ((weakref, alias ("y")));