From a66db65a1d05696a31c46c02f9a2ea874cad2ed3 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 5 Aug 2019 16:19:55 -0700 Subject: [PATCH] ircd: Tweak suggestion output; satisfy several suggestions. --- configure.ac | 5 +++-- include/ircd/string_view.h | 1 + include/ircd/util/hash.h | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 10ce520a1..fd4a0495b 100644 --- a/configure.ac +++ b/configure.ac @@ -690,13 +690,14 @@ AM_COND_IF([GCC], CHARYBDIS_C_GCC_TRY_FLAGS([-Wformat-security], charybdis_cv_c_gcc_w_format_security) CHARYBDIS_C_GCC_TRY_FLAGS([-Wstack-usage=$STACK_USAGE_WARNING], charybdis_cv_c_gcc_w_stack_usage) CHARYBDIS_C_GCC_TRY_FLAGS([-Wframe-larger-than=$FRAME_SIZE_WARNING], charybdis_cv_c_gcc_w_frame_larger_than) + CHARYBDIS_C_GCC_TRY_FLAGS([-Walloca], charybdis_cv_c_gcc_w_alloca) CHARYBDIS_C_GCC_TRY_FLAGS([-Wsuggest-attribute=format], charybdis_cv_c_gcc_w_suggest_attribute_format) - CHARYBDIS_C_GCC_TRY_FLAGS([-Wsuggest-attribute=pure], charybdis_cv_c_gcc_w_suggest_attribute_pure) - CHARYBDIS_C_GCC_TRY_FLAGS([-Wsuggest-attribute=const], charybdis_cv_c_gcc_w_suggest_attribute_const) CHARYBDIS_C_GCC_TRY_FLAGS([-Wsuggest-attribute=noreturn], charybdis_cv_c_gcc_w_suggest_attribute_noreturn) CHARYBDIS_C_GCC_TRY_FLAGS([-Wsuggest-attribute=malloc], charybdis_cv_c_gcc_w_suggest_attribute_malloc) CHARYBDIS_C_GCC_TRY_FLAGS([-Wsuggest-attribute=cold], charybdis_cv_c_gcc_w_suggest_attribute_cold) + dnl CHARYBDIS_C_GCC_TRY_FLAGS([-Wsuggest-attribute=pure], charybdis_cv_c_gcc_w_suggest_attribute_pure) + dnl CHARYBDIS_C_GCC_TRY_FLAGS([-Wsuggest-attribute=const], charybdis_cv_c_gcc_w_suggest_attribute_const) ],[]) AM_COND_IF([CLANG], diff --git a/include/ircd/string_view.h b/include/ircd/string_view.h index 7b6f043d1..2727f4e2e 100644 --- a/include/ircd/string_view.h +++ b/include/ircd/string_view.h @@ -267,6 +267,7 @@ ircd::data(const string_view &str) return str.data(); } +[[gnu::pure]] constexpr size_t ircd::_constexpr_strlen(const char *const s) { diff --git a/include/ircd/util/hash.h b/include/ircd/util/hash.h index 2df485265..fb79ddaf0 100644 --- a/include/ircd/util/hash.h +++ b/include/ircd/util/hash.h @@ -27,6 +27,7 @@ inline namespace util /// Runtime hashing of a std::u16string (for js). Non-cryptographic. template +[[gnu::pure]] size_t ircd::util::hash(const std::u16string &str, const size_t i) @@ -36,6 +37,7 @@ ircd::util::hash(const std::u16string &str, /// Runtime hashing of a string_view. Non-cryptographic. template +[[gnu::pure]] constexpr size_t ircd::util::hash(const string_view str, const size_t i) @@ -45,6 +47,7 @@ ircd::util::hash(const string_view str, /// Compile-time hashing of a wider string literal (for js). Non-cryptographic. template +[[gnu::pure]] constexpr size_t ircd::util::hash(const char16_t *const str, const size_t i)