libcdsb/include/__attributes.h

24 lines
1.0 KiB
C

/* This software is licensed by the MIT License, see LICENSE file */
/* Copyright © 2022 Gregory Lirent */
#ifndef LIBCDSB_CORE_ATTRIBUTES_H
#define LIBCDSB_CORE_ATTRIBUTES_H
#define LIBCDSB_nt__ __attribute__ ((nothrow))
#define LIBCDSB_nn1__ __attribute__ ((nonnull (1)))
#define LIBCDSB_nn2__ __attribute__ ((nonnull (2)))
#define LIBCDSB_nn12__ __attribute__ ((nonnull (1,2)))
#define LIBCDSB_nn123__ __attribute__ ((nonnull (1,2,3)))
#define LIBCDSB_nn124__ __attribute__ ((nonnull (1,2,4)))
#define LIBCDSB_nn13__ __attribute__ ((nonnull (1,3)))
#define LIBCDSB_nn23__ __attribute__ ((nonnull (2,3)))
#define LIBCDSB_nn23__ __attribute__ ((nonnull (2,3)))
#define LIBCDSB_pure__ LIBCDSB_nt__ __attribute__ ((pure))
#define LIBCDSB_wur__ __attribute__ ((warn_unused_result))
#define LIBCDSB_cmpattr__ LIBCDSB_pure__ LIBCDSB_nn12__
#define LIBCDSB_cpyattr__ LIBCDSB_pure__ LIBCDSB_wur__ LIBCDSB_nn1__
#define LIBCDSB_dupattr__ LIBCDSB_wur__ LIBCDSB_nn1__
#endif /* LIBCDSB_CORE_ATTRIBUTES_H */