*/
#define PRAGMA(_x) _Pragma(#_x)
+/*
+ * Handle acquire/release macros
+ */
+#ifdef __clang__
+# define CC_ACQUIRE_HANDLE(_tag) CC_HINT(acquire_handle(_tag))
+# define CC_USE_HANDLE(_tag) CC_HINT(use_handle(_tag))
+# define CC_RELEASE_HANDLE(_tag) CC_HINT(release_handle(_tag))
+#else
+# define CC_ACQUIRE_HANDLE(_tag)
+# define CC_USE_HANDLE(_tag)
+# define CC_RELEASE_HANDLE(_tag)
+#endif
+
/*
* Macros for controlling warnings in GCC >= 4.2 and clang >= 2.8
*/
void exfile_enable_triggers(exfile_t *ef, CONF_SECTION *cs, char const *trigger_prefix,
fr_pair_list_t *trigger_args);
-CC_HINT(acquire_handle("exfile_fd"))
+CC_ACQUIRE_HANDLE("exfile_fd")
int exfile_open(exfile_t *lf, char const *filename, mode_t permissions);
-int exfile_close(exfile_t *lf, CC_HINT(release_handle("exfile_fd")) int fd);
+int exfile_close(exfile_t *lf, CC_RELEASE_HANDLE("exfile_fd") int fd);
#ifdef __cplusplus
}
/*
* Connection lifecycle
*/
-CC_HINT(acquire_handle("conn_pool_handle"))
+CC_ACQUIRE_HANDLE("conn_pool_handle")
void *fr_pool_connection_get(fr_pool_t *pool, request_t *request);
void fr_pool_connection_release(fr_pool_t *pool, request_t *request,
- CC_HINT(release_handle("conn_pool_handle")) void *conn);
+ CC_RELEASE_HANDLE("conn_pool_handle") void *conn);
void *fr_pool_connection_reconnect(fr_pool_t *pool, request_t *request,
- CC_HINT(use_handle("conn_pool_handle")) void *conn);
+ CC_RELEASE_HANDLE("conn_pool_handle") void *conn);
int fr_pool_connection_close(fr_pool_t *pool,
- request_t *request, CC_HINT(release_handle("conn_pool_handle")) void *conn);
+ request_t *request, CC_RELEASE_HANDLE("conn_pool_handle") void *conn);
#ifdef __cplusplus
}