libcdsb/include/__attributes.h

24 lines
1.0 KiB
C
Raw Normal View History

2022-06-02 11:20:55 +00:00
/* 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)))
2022-06-04 18:52:00 +00:00
#define LIBCDSB_nn2__ __attribute__ ((nonnull (2)))
2022-06-02 11:20:55 +00:00
#define LIBCDSB_nn12__ __attribute__ ((nonnull (1,2)))
#define LIBCDSB_nn123__ __attribute__ ((nonnull (1,2,3)))
2022-06-08 06:56:14 +00:00
#define LIBCDSB_nn124__ __attribute__ ((nonnull (1,2,4)))
2022-06-02 11:20:55 +00:00
#define LIBCDSB_nn13__ __attribute__ ((nonnull (1,3)))
2022-06-08 06:56:14 +00:00
#define LIBCDSB_nn23__ __attribute__ ((nonnull (2,3)))
#define LIBCDSB_nn23__ __attribute__ ((nonnull (2,3)))
2022-06-02 11:20:55 +00:00
#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 */