diff options
-rw-r--r-- | include/ap_config.h | 9 | ||||
-rw-r--r-- | include/http_protocol.h | 2 | ||||
-rw-r--r-- | include/http_request.h | 2 | ||||
-rw-r--r-- | include/util_cookies.h | 8 | ||||
-rw-r--r-- | include/util_filter.h | 5 | ||||
-rw-r--r-- | include/util_script.h | 3 |
6 files changed, 18 insertions, 11 deletions
diff --git a/include/ap_config.h b/include/ap_config.h index 0f67c3f07f..ea2c19581b 100644 --- a/include/ap_config.h +++ b/include/ap_config.h @@ -173,4 +173,13 @@ #define AP_HAVE_DESIGNATED_INITIALIZER #endif +#ifndef __has_attribute /* check for supported attributes on clang */ +#define __has_attribute(x) 0 +#endif +#if (defined(__GNUC__) && __GNUC__ >= 4) || __has_attribute(sentinel) +#define ap_func_attr_sentinel __attribute__((sentinel)) +#else +#define ap_func_attr_sentinel +#endif + #endif /* AP_CONFIG_H */ diff --git a/include/http_protocol.h b/include/http_protocol.h index 705268efe3..b33279bca8 100644 --- a/include/http_protocol.h +++ b/include/http_protocol.h @@ -346,7 +346,7 @@ static inline int ap_rputs(const char *str, request_rec *r) * @return The number of bytes sent */ AP_DECLARE_NONSTD(int) ap_rvputs(request_rec *r,...) - __attribute__((sentinel)); + ap_func_attr_sentinel; /** * Output data to the client in a printf format diff --git a/include/http_request.h b/include/http_request.h index e591f6ea2c..644079eb10 100644 --- a/include/http_request.h +++ b/include/http_request.h @@ -285,7 +285,7 @@ AP_DECLARE(void) ap_update_mtime(request_rec *r, apr_time_t dependency_mtime); * @return None. */ AP_DECLARE(void) ap_allow_methods(request_rec *r, int reset, ...) - __attribute__((sentinel)); + ap_func_attr_sentinel; /** * Add one or more methods to the list permitted to access the resource. diff --git a/include/util_cookies.h b/include/util_cookies.h index 439d28926d..c424dc045d 100644 --- a/include/util_cookies.h +++ b/include/util_cookies.h @@ -68,7 +68,7 @@ typedef struct { AP_DECLARE(apr_status_t) ap_cookie_write(request_rec * r, const char *name, const char *val, const char *attrs, long maxage, ...) - __attribute__((sentinel)); + ap_func_attr_sentinel; /** * Write an RFC2965 compliant cookie. @@ -85,7 +85,7 @@ AP_DECLARE(apr_status_t) ap_cookie_write(request_rec * r, const char *name, AP_DECLARE(apr_status_t) ap_cookie_write2(request_rec * r, const char *name2, const char *val, const char *attrs2, long maxage, ...) - __attribute__((sentinel)); + ap_func_attr_sentinel; /** * Remove an RFC2109 compliant cookie. @@ -99,7 +99,7 @@ AP_DECLARE(apr_status_t) ap_cookie_write2(request_rec * r, const char *name2, */ AP_DECLARE(apr_status_t) ap_cookie_remove(request_rec * r, const char *name, const char *attrs, ...) - __attribute__((sentinel)); + ap_func_attr_sentinel; /** * Remove an RFC2965 compliant cookie. @@ -113,7 +113,7 @@ AP_DECLARE(apr_status_t) ap_cookie_remove(request_rec * r, const char *name, */ AP_DECLARE(apr_status_t) ap_cookie_remove2(request_rec * r, const char *name2, const char *attrs2, ...) - __attribute__((sentinel)); + ap_func_attr_sentinel; /** * Read a cookie called name, placing its value in val. diff --git a/include/util_filter.h b/include/util_filter.h index 449889d1a6..5c8245d7cf 100644 --- a/include/util_filter.h +++ b/include/util_filter.h @@ -547,10 +547,7 @@ AP_DECLARE(apr_status_t) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb); AP_DECLARE_NONSTD(apr_status_t) ap_fputstrs(ap_filter_t *f, apr_bucket_brigade *bb, ...) -#if defined(__GNUC__) && __GNUC__ >= 4 - __attribute__((sentinel)) -#endif -; + ap_func_attr_sentinel; /** * Output data to the filter in printf format diff --git a/include/util_script.h b/include/util_script.h index 04511c9768..e019aaefd8 100644 --- a/include/util_script.h +++ b/include/util_script.h @@ -27,6 +27,7 @@ #define APACHE_UTIL_SCRIPT_H #include "apr_buckets.h" +#include "ap_config.h" #ifdef __cplusplus extern "C" { @@ -123,7 +124,7 @@ AP_DECLARE_NONSTD(int) ap_scan_script_header_err_strs(request_rec *r, char *buffer, const char **termch, int *termarg, ...) - __attribute__((sentinel)); + ap_func_attr_sentinel; /** * Read headers output from a script, ensuring that the output is valid. If |