commit a495bf1ef231da351a7e7430380699492a4ccd7c Author: David Goulet dgoulet@ev0ke.net Date: Fri Feb 24 11:57:03 2017 -0500
Remove clang warnings
The ht.h generated functions are now flagged with ATTR_UNUSED so the compiler knows to ignore the warnings if unused.
Remove -fno-strict-overflow as well. Not needed for gcc and clang doesn't have it.
Signed-off-by: David Goulet dgoulet@ev0ke.net --- configure.ac | 3 --- src/common/ht.h | 27 ++++++++++++++------------- src/common/macros.h | 4 ++++ 3 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/configure.ac b/configure.ac index f5dd992..f6fdb0e 100644 --- a/configure.ac +++ b/configure.ac @@ -252,9 +252,6 @@ AX_CHECK_COMPILE_FLAG([--param ssp-buffer-size=1], AX_CHECK_COMPILE_FLAG([-fstack-protector-all], [CFLAGS="$CFLAGS -fstack-protector-all"],[],[] ) -AX_CHECK_COMPILE_FLAG([-fno-strict-overflow], - [CFLAGS="$CFLAGS -fno-strict-overflow"],[],[] -)
dnl Add hardening linker flags AX_CHECK_LINK_FLAG([-pie],[LDFLAGS="$LDFLAGS -pie"],[],[]) diff --git a/src/common/ht.h b/src/common/ht.h index e2fb809..b3d858e 100644 --- a/src/common/ht.h +++ b/src/common/ht.h @@ -133,7 +133,7 @@ ht_string_hash(const char *s) int name##_HT_GROW(struct name *ht, unsigned min_capacity); \ void name##_HT_CLEAR(struct name *ht); \ int name##_HT_REP_IS_BAD_(const struct name *ht); \ - static inline void \ + ATTR_UNUSED static inline void \ name##_HT_INIT(struct name *head) { \ head->hth_table_length = 0; \ head->hth_table = NULL; \ @@ -143,7 +143,7 @@ ht_string_hash(const char *s) } \ /* Helper: returns a pointer to the right location in the table \ * 'head' to find or insert the element 'elm'. */ \ - static inline struct type ** \ + ATTR_UNUSED static inline struct type ** \ name##_HT_FIND_P_(struct name *head, struct type *elm) \ { \ struct type **p; \ @@ -157,9 +157,9 @@ ht_string_hash(const char *s) } \ return p; \ } \ - /* Return a pointer to the element in the table 'head' matching 'elm', \ - * or NULL if no such element exists */ \ - static inline struct type * \ + /* Return a pointer to the element in the table 'head' matching \ + * 'elm', or NULL if no such element exists */ \ + ATTR_UNUSED static inline struct type * \ name##_HT_FIND(const struct name *head, struct type *elm) \ { \ struct type **p; \ @@ -170,11 +170,12 @@ ht_string_hash(const char *s) } \ /* Insert the element 'elm' into the table 'head'. Do not call this \ * function if the table might already contain a matching element. */ \ - static inline void \ + ATTR_UNUSED static inline void \ name##_HT_INSERT(struct name *head, struct type *elm) \ { \ struct type **p; \ - if (!head->hth_table || head->hth_n_entries >= head->hth_load_limit) \ + if (!head->hth_table || \ + head->hth_n_entries >= head->hth_load_limit) \ name##_HT_GROW(head, head->hth_n_entries+1); \ ++head->hth_n_entries; \ HT_SET_HASH_(elm, field, hashfn); \ @@ -185,7 +186,7 @@ ht_string_hash(const char *s) /* Insert the element 'elm' into the table 'head'. If there already \ * a matching element in the table, replace that element and return \ * it. */ \ - static inline struct type * \ + ATTR_UNUSED static inline struct type * \ name##_HT_REPLACE(struct name *head, struct type *elm) \ { \ struct type **p, *r; \ @@ -206,7 +207,7 @@ ht_string_hash(const char *s) } \ /* Remove any element matching 'elm' from the table 'head'. If such \ * an element is found, return it; otherwise return NULL. */ \ - static inline struct type * \ + ATTR_UNUSED static inline struct type * \ name##_HT_REMOVE(struct name *head, struct type *elm) \ { \ struct type **p, *r; \ @@ -224,7 +225,7 @@ ht_string_hash(const char *s) * using 'data' as its second argument. If the function returns \ * nonzero, remove the most recently examined element before invoking \ * the function again. */ \ - static inline void \ + ATTR_UNUSED static inline void \ name##_HT_FOREACH_FN(struct name *head, \ int (*fn)(struct type *, void *), \ void *data) \ @@ -250,7 +251,7 @@ ht_string_hash(const char *s) /* Return a pointer to the first element in the table 'head', under \ * an arbitrary order. This order is stable under remove operations, \ * but not under others. If the table is empty, return NULL. */ \ - static inline struct type ** \ + ATTR_UNUSED static inline struct type ** \ name##_HT_START(struct name *head) \ { \ unsigned b = 0; \ @@ -266,7 +267,7 @@ ht_string_hash(const char *s) * NULL. If 'elm' is to be removed from the table, you must call \ * this function for the next value before you remove it. \ */ \ - static inline struct type ** \ + ATTR_UNUSED static inline struct type ** \ name##_HT_NEXT(struct name *head, struct type **elm) \ { \ if ((*elm)->field.hte_next) { \ @@ -282,7 +283,7 @@ ht_string_hash(const char *s) return NULL; \ } \ } \ - static inline struct type ** \ + ATTR_UNUSED static inline struct type ** \ name##_HT_NEXT_RMV(struct name *head, struct type **elm) \ { \ unsigned h = HT_ELT_HASH_(*elm, field, hashfn); \ diff --git a/src/common/macros.h b/src/common/macros.h index 8b52814..92ede22 100644 --- a/src/common/macros.h +++ b/src/common/macros.h @@ -41,6 +41,10 @@ #define ATTR_HIDDEN __attribute__((visibility("hidden"))) #endif
+#ifndef ATTR_UNUSED +#define ATTR_UNUSED __attribute__ ((unused)) +#endif + #ifndef min #define min(a, b) ((a) < (b) ? (a) : (b)) #endif
tor-commits@lists.torproject.org