add pure & const function attributes suggested by gcc -Wsuggest-attribute
This only covers the ones in the pre-written code. There are many more suggested in the generated code, which will require changing the generator and will thus be handled separately. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Part-of: <https://gitlab.freedesktop.org/xorg/lib/libxcb/-/merge_requests/64>
This commit is contained in:
parent
021e887de9
commit
daf2c53976
23
src/xcb.h
23
src/xcb.h
|
@ -51,12 +51,32 @@ extern "C" {
|
||||||
# define __has_attribute(x) 0 /* Compatibility with older compilers. */
|
# define __has_attribute(x) 0 /* Compatibility with older compilers. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* For the below checks, we currently assume that __GNUC__ indicates
|
||||||
|
* gcc 3.0 (released 2001) or later, as we require support for C99.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Supported in gcc 2.5 and later */
|
||||||
|
#if defined(__GNUC__) || __has_attribute(__const__)
|
||||||
|
#define XCB_CONST_FUNCTION __attribute__((__const__))
|
||||||
|
#else
|
||||||
|
#define XCB_CONST_FUNCTION XCB_PURE_FUNCTION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Supported in gcc 2.7 and later */
|
||||||
#if defined(__GNUC__) || __has_attribute(__packed__)
|
#if defined(__GNUC__) || __has_attribute(__packed__)
|
||||||
#define XCB_PACKED __attribute__((__packed__))
|
#define XCB_PACKED __attribute__((__packed__))
|
||||||
#else
|
#else
|
||||||
#define XCB_PACKED
|
#define XCB_PACKED
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Supported in gcc 2.96 and later */
|
||||||
|
#if defined(__GNUC__) || __has_attribute(__pure__)
|
||||||
|
#define XCB_PURE_FUNCTION __attribute__((__pure__))
|
||||||
|
#else
|
||||||
|
#define XCB_PURE_FUNCTION
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup XCB_Core_API XCB Core API
|
* @defgroup XCB_Core_API XCB Core API
|
||||||
* @brief Core API of the XCB library.
|
* @brief Core API of the XCB library.
|
||||||
|
@ -469,6 +489,7 @@ void xcb_prefetch_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
|
||||||
*
|
*
|
||||||
* The result must not be freed.
|
* The result must not be freed.
|
||||||
*/
|
*/
|
||||||
|
XCB_PURE_FUNCTION
|
||||||
const struct xcb_setup_t *xcb_get_setup(xcb_connection_t *c);
|
const struct xcb_setup_t *xcb_get_setup(xcb_connection_t *c);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -479,6 +500,7 @@ const struct xcb_setup_t *xcb_get_setup(xcb_connection_t *c);
|
||||||
* Accessor for the file descriptor that was passed to the
|
* Accessor for the file descriptor that was passed to the
|
||||||
* xcb_connect_to_fd call that returned @p c.
|
* xcb_connect_to_fd call that returned @p c.
|
||||||
*/
|
*/
|
||||||
|
XCB_PURE_FUNCTION
|
||||||
int xcb_get_file_descriptor(xcb_connection_t *c);
|
int xcb_get_file_descriptor(xcb_connection_t *c);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -499,6 +521,7 @@ int xcb_get_file_descriptor(xcb_connection_t *c);
|
||||||
* @return XCB_CONN_CLOSED_PARSE_ERR, error during parsing display string.
|
* @return XCB_CONN_CLOSED_PARSE_ERR, error during parsing display string.
|
||||||
* @return XCB_CONN_CLOSED_INVALID_SCREEN, because the server does not have a screen matching the display.
|
* @return XCB_CONN_CLOSED_INVALID_SCREEN, because the server does not have a screen matching the display.
|
||||||
*/
|
*/
|
||||||
|
XCB_PURE_FUNCTION
|
||||||
int xcb_connection_has_error(xcb_connection_t *c);
|
int xcb_connection_has_error(xcb_connection_t *c);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -297,6 +297,7 @@ int xcb_poll_for_reply64(xcb_connection_t *c, uint64_t request, void **reply, xc
|
||||||
* @param replylen The size of the reply.
|
* @param replylen The size of the reply.
|
||||||
* @return Pointer to the location where received file descriptors are stored.
|
* @return Pointer to the location where received file descriptors are stored.
|
||||||
*/
|
*/
|
||||||
|
XCB_CONST_FUNCTION
|
||||||
int *xcb_get_reply_fds(xcb_connection_t *c, void *reply, size_t replylen);
|
int *xcb_get_reply_fds(xcb_connection_t *c, void *reply, size_t replylen);
|
||||||
|
|
||||||
|
|
||||||
|
@ -306,6 +307,7 @@ int *xcb_get_reply_fds(xcb_connection_t *c, void *reply, size_t replylen);
|
||||||
* @param mask The mask to check
|
* @param mask The mask to check
|
||||||
* @return The number of set bits in the mask
|
* @return The number of set bits in the mask
|
||||||
*/
|
*/
|
||||||
|
XCB_CONST_FUNCTION
|
||||||
int xcb_popcount(uint32_t mask);
|
int xcb_popcount(uint32_t mask);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -313,6 +315,7 @@ int xcb_popcount(uint32_t mask);
|
||||||
* @param len The length of the array
|
* @param len The length of the array
|
||||||
* @return The sum of all entries in the array.
|
* @return The sum of all entries in the array.
|
||||||
*/
|
*/
|
||||||
|
XCB_PURE_FUNCTION
|
||||||
int xcb_sumof(uint8_t *list, int len);
|
int xcb_sumof(uint8_t *list, int len);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -225,6 +225,7 @@ struct xcb_connection_t {
|
||||||
|
|
||||||
void _xcb_conn_shutdown(xcb_connection_t *c, int err);
|
void _xcb_conn_shutdown(xcb_connection_t *c, int err);
|
||||||
|
|
||||||
|
XCB_CONST_FUNCTION
|
||||||
xcb_connection_t *_xcb_conn_ret_error(int err);
|
xcb_connection_t *_xcb_conn_ret_error(int err);
|
||||||
|
|
||||||
int _xcb_conn_wait(xcb_connection_t *c, pthread_cond_t *cond, struct iovec **vector, int *count);
|
int _xcb_conn_wait(xcb_connection_t *c, pthread_cond_t *cond, struct iovec **vector, int *count);
|
||||||
|
|
Loading…
Reference in New Issue