diff --git a/src/Expr.h b/src/Expr.h index 78576758a9..d7227ba7d0 100644 --- a/src/Expr.h +++ b/src/Expr.h @@ -232,10 +232,12 @@ public: bool IsParen() const { return paren; } // These are used by script optimization for AST analysis. + // NOLINTBEGIN(bugprone-macro-parentheses) #define ZEEK_EXPR_ACCESSOR_DECLS(ctype) \ const ctype* As##ctype() const; \ ctype* As##ctype(); \ IntrusivePtr As##ctype##Ptr(); + // NOLINTEND(bugprone-macro-parentheses) ZEEK_EXPR_ACCESSOR_DECLS(AddToExpr) ZEEK_EXPR_ACCESSOR_DECLS(AssignExpr) diff --git a/src/List.h b/src/List.h index b2ffc58f4a..07f8a2b42f 100644 --- a/src/List.h +++ b/src/List.h @@ -317,4 +317,4 @@ using name_list = PList; // Macro to visit each list element in turn. #define loop_over_list(list, iterator) \ int iterator; \ - for ( iterator = 0; iterator < (list).length(); ++iterator ) + for ( (iterator) = 0; (iterator) < (list).length(); ++(iterator) ) diff --git a/src/NFA.h b/src/NFA.h index 8364dee6d6..62530b17e0 100644 --- a/src/NFA.h +++ b/src/NFA.h @@ -5,16 +5,16 @@ #include "zeek/List.h" #include "zeek/Obj.h" -#define NO_ACCEPT 0 +constexpr int NO_ACCEPT = 0; -#define NO_UPPER_BOUND -1 +constexpr int NO_UPPER_BOUND = -1; -#define SYM_BOL 256 -#define SYM_EOL 257 -#define NUM_SYM 258 +constexpr int SYM_BOL = 256; +constexpr int SYM_EOL = 257; +constexpr int NUM_SYM = 258; -#define SYM_EPSILON 259 -#define SYM_CCL 260 +constexpr int SYM_EPSILON = 259; +constexpr int SYM_CCL = 260; namespace zeek { diff --git a/src/Obj.h b/src/Obj.h index 6faa669626..56423498b8 100644 --- a/src/Obj.h +++ b/src/Obj.h @@ -95,7 +95,7 @@ public: void BadTag(const char* msg, const char* t1 = nullptr, const char* t2 = nullptr) const; #define CHECK_TAG(t1, t2, text, tag_to_text_func) \ { \ - if ( t1 != t2 ) \ + if ( (t1) != (t2) ) \ BadTag(text, tag_to_text_func(t1), tag_to_text_func(t2)); \ } diff --git a/src/OpaqueVal.h b/src/OpaqueVal.h index 7bf96c2c7e..a1ad234eae 100644 --- a/src/OpaqueVal.h +++ b/src/OpaqueVal.h @@ -229,7 +229,7 @@ public: static void hmac(const T& vlist, u_char key[ZEEK_MD5_DIGEST_LENGTH], u_char result[ZEEK_MD5_DIGEST_LENGTH]) { digest(vlist, result); - for ( int i = 0; i < ZEEK_MD5_DIGEST_LENGTH; ++i ) + for ( size_t i = 0; i < ZEEK_MD5_DIGEST_LENGTH; ++i ) result[i] ^= key[i]; detail::internal_md5(result, ZEEK_MD5_DIGEST_LENGTH, result); diff --git a/src/analyzer/Analyzer.h b/src/analyzer/Analyzer.h index ee35a457e6..6107b70907 100644 --- a/src/analyzer/Analyzer.h +++ b/src/analyzer/Analyzer.h @@ -781,25 +781,26 @@ private: /** * Internal convenience macro to iterate over the list of child analyzers. */ -#define LOOP_OVER_CHILDREN(var) for ( auto var = children.begin(); var != children.end(); ++var ) +#define LOOP_OVER_CHILDREN(var) for ( auto(var) = children.begin(); (var) != children.end(); ++(var) ) /** * Internal convenience macro to iterate over the constant list of child * analyzers. */ -#define LOOP_OVER_CONST_CHILDREN(var) for ( auto var = children.cbegin(); var != children.cend(); ++var ) +#define LOOP_OVER_CONST_CHILDREN(var) for ( auto(var) = children.cbegin(); (var) != children.cend(); ++(var) ) /** * Convenience macro to iterate over a given list of child analyzers. */ -#define LOOP_OVER_GIVEN_CHILDREN(var, the_kids) for ( auto var = the_kids.begin(); var != the_kids.end(); ++var ) +#define LOOP_OVER_GIVEN_CHILDREN(var, the_kids) \ + for ( auto(var) = (the_kids).begin(); (var) != (the_kids).end(); ++(var) ) /** * Convenience macro to iterate over a given constant list of child * analyzers. */ #define LOOP_OVER_GIVEN_CONST_CHILDREN(var, the_kids) \ - for ( auto var = the_kids.cbegin(); var != the_kids.cend(); ++var ) + for ( auto(var) = (the_kids).cbegin(); (var) != (the_kids).cend(); ++(var) ) /** * Support analyzer preprocess input before it reaches an analyzer's main diff --git a/src/analyzer/Manager.h b/src/analyzer/Manager.h index 1b6a2ede9c..b19d96b374 100644 --- a/src/analyzer/Manager.h +++ b/src/analyzer/Manager.h @@ -389,10 +389,11 @@ extern analyzer::Manager* analyzer_mgr; #ifdef DEBUG #define DBG_ANALYZER(conn, txt) \ DBG_LOG(zeek::DBG_ANALYZER, "%s " txt, \ - fmt_conn_id(conn->OrigAddr(), ntohs(conn->OrigPort()), conn->RespAddr(), ntohs(conn->RespPort()))); + fmt_conn_id((conn)->OrigAddr(), ntohs((conn)->OrigPort()), (conn)->RespAddr(), \ + ntohs((conn)->RespPort()))); #define DBG_ANALYZER_ARGS(conn, fmt, ...) \ DBG_LOG(zeek::DBG_ANALYZER, "%s " fmt, \ - fmt_conn_id(conn->OrigAddr(), ntohs(conn->OrigPort()), conn->RespAddr(), ntohs(conn->RespPort())), \ + fmt_conn_id((conn)->OrigAddr(), ntohs((conn)->OrigPort()), (conn)->RespAddr(), ntohs((conn)->RespPort())), \ ##__VA_ARGS__); #else #define DBG_ANALYZER(conn, txt) diff --git a/src/analyzer/protocol/ntp/ntp-analyzer.pac b/src/analyzer/protocol/ntp/ntp-analyzer.pac index d0ce8d964d..6da8c2c2ac 100644 --- a/src/analyzer/protocol/ntp/ntp-analyzer.pac +++ b/src/analyzer/protocol/ntp/ntp-analyzer.pac @@ -1,10 +1,10 @@ %extern{ #include - #define FRAC_16 pow(2,-16) - #define FRAC_32 pow(2,-32) + #define FRAC_16 std::pow(2,-16) + #define FRAC_32 std::pow(2,-32) // NTP defines the epoch from 1900, not 1970 - #define EPOCH_OFFSET -2208988800 + constexpr double EPOCH_OFFSET = -2208988800; %} %header{ diff --git a/src/digest.h b/src/digest.h index 07ee1c776b..1e8caf976d 100644 --- a/src/digest.h +++ b/src/digest.h @@ -13,26 +13,26 @@ #include "zeek/util.h" // for util::bytetohex // Required buffer size for an MD5 digest. -#define ZEEK_MD5_DIGEST_LENGTH 16 +constexpr size_t ZEEK_MD5_DIGEST_LENGTH = 16; // Required buffer size for an SHA1 digest. -#define ZEEK_SHA_DIGEST_LENGTH 20 +constexpr size_t ZEEK_SHA_DIGEST_LENGTH = 20; // Required buffer size for an SHA224 digest. -#define ZEEK_SHA224_DIGEST_LENGTH 28 +constexpr size_t ZEEK_SHA224_DIGEST_LENGTH = 28; // Required buffer size for an SHA256 digest. -#define ZEEK_SHA256_DIGEST_LENGTH 32 +constexpr size_t ZEEK_SHA256_DIGEST_LENGTH = 32; // Required buffer size for an SHA384 digest. -#define ZEEK_SHA384_DIGEST_LENGTH 48 +constexpr size_t ZEEK_SHA384_DIGEST_LENGTH = 48; // Required buffer size for an SHA512 digest. -#define ZEEK_SHA512_DIGEST_LENGTH 64 +constexpr size_t ZEEK_SHA512_DIGEST_LENGTH = 64; // Buffer size for a digest of any type in hex representation plus size for at // least a null terminator. -#define ZEEK_DIGEST_PRINT_LENGTH (ZEEK_SHA512_DIGEST_LENGTH * 2) + 1 +constexpr size_t ZEEK_DIGEST_PRINT_LENGTH = (ZEEK_SHA512_DIGEST_LENGTH * 2) + 1; namespace zeek::detail { diff --git a/src/script_opt/IDOptInfo.h b/src/script_opt/IDOptInfo.h index 5dd07c85e2..2ac7d037e5 100644 --- a/src/script_opt/IDOptInfo.h +++ b/src/script_opt/IDOptInfo.h @@ -18,7 +18,7 @@ class Stmt; using ExprPtr = IntrusivePtr; -#define NO_DEF -1 +constexpr int NO_DEF = -1; // This class tracks a single region during which an identifier has // a consistent state of definition, meaning either it's (1) defined