File indexing completed on 2025-12-16 09:40:52
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef ABSL_LOG_INTERNAL_CHECK_IMPL_H_
0016 #define ABSL_LOG_INTERNAL_CHECK_IMPL_H_
0017
0018 #include "absl/base/optimization.h"
0019 #include "absl/log/internal/check_op.h"
0020 #include "absl/log/internal/conditions.h"
0021 #include "absl/log/internal/log_message.h"
0022 #include "absl/log/internal/strip.h"
0023
0024
0025 #define ABSL_LOG_INTERNAL_CHECK_IMPL(condition, condition_text) \
0026 ABSL_LOG_INTERNAL_CONDITION_FATAL(STATELESS, \
0027 ABSL_PREDICT_FALSE(!(condition))) \
0028 ABSL_LOG_INTERNAL_CHECK(condition_text).InternalStream()
0029
0030 #define ABSL_LOG_INTERNAL_QCHECK_IMPL(condition, condition_text) \
0031 ABSL_LOG_INTERNAL_CONDITION_QFATAL(STATELESS, \
0032 ABSL_PREDICT_FALSE(!(condition))) \
0033 ABSL_LOG_INTERNAL_QCHECK(condition_text).InternalStream()
0034
0035 #define ABSL_LOG_INTERNAL_PCHECK_IMPL(condition, condition_text) \
0036 ABSL_LOG_INTERNAL_CHECK_IMPL(condition, condition_text).WithPerror()
0037
0038 #ifndef NDEBUG
0039 #define ABSL_LOG_INTERNAL_DCHECK_IMPL(condition, condition_text) \
0040 ABSL_LOG_INTERNAL_CHECK_IMPL(condition, condition_text)
0041 #else
0042 #define ABSL_LOG_INTERNAL_DCHECK_IMPL(condition, condition_text) \
0043 ABSL_LOG_INTERNAL_CHECK_IMPL(true || (condition), "true")
0044 #endif
0045
0046
0047 #define ABSL_LOG_INTERNAL_CHECK_EQ_IMPL(val1, val1_text, val2, val2_text) \
0048 ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
0049 #define ABSL_LOG_INTERNAL_CHECK_NE_IMPL(val1, val1_text, val2, val2_text) \
0050 ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
0051 #define ABSL_LOG_INTERNAL_CHECK_LE_IMPL(val1, val1_text, val2, val2_text) \
0052 ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
0053 #define ABSL_LOG_INTERNAL_CHECK_LT_IMPL(val1, val1_text, val2, val2_text) \
0054 ABSL_LOG_INTERNAL_CHECK_OP(Check_LT, <, val1, val1_text, val2, val2_text)
0055 #define ABSL_LOG_INTERNAL_CHECK_GE_IMPL(val1, val1_text, val2, val2_text) \
0056 ABSL_LOG_INTERNAL_CHECK_OP(Check_GE, >=, val1, val1_text, val2, val2_text)
0057 #define ABSL_LOG_INTERNAL_CHECK_GT_IMPL(val1, val1_text, val2, val2_text) \
0058 ABSL_LOG_INTERNAL_CHECK_OP(Check_GT, >, val1, val1_text, val2, val2_text)
0059 #define ABSL_LOG_INTERNAL_QCHECK_EQ_IMPL(val1, val1_text, val2, val2_text) \
0060 ABSL_LOG_INTERNAL_QCHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
0061 #define ABSL_LOG_INTERNAL_QCHECK_NE_IMPL(val1, val1_text, val2, val2_text) \
0062 ABSL_LOG_INTERNAL_QCHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
0063 #define ABSL_LOG_INTERNAL_QCHECK_LE_IMPL(val1, val1_text, val2, val2_text) \
0064 ABSL_LOG_INTERNAL_QCHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
0065 #define ABSL_LOG_INTERNAL_QCHECK_LT_IMPL(val1, val1_text, val2, val2_text) \
0066 ABSL_LOG_INTERNAL_QCHECK_OP(Check_LT, <, val1, val1_text, val2, val2_text)
0067 #define ABSL_LOG_INTERNAL_QCHECK_GE_IMPL(val1, val1_text, val2, val2_text) \
0068 ABSL_LOG_INTERNAL_QCHECK_OP(Check_GE, >=, val1, val1_text, val2, val2_text)
0069 #define ABSL_LOG_INTERNAL_QCHECK_GT_IMPL(val1, val1_text, val2, val2_text) \
0070 ABSL_LOG_INTERNAL_QCHECK_OP(Check_GT, >, val1, val1_text, val2, val2_text)
0071 #ifndef NDEBUG
0072 #define ABSL_LOG_INTERNAL_DCHECK_EQ_IMPL(val1, val1_text, val2, val2_text) \
0073 ABSL_LOG_INTERNAL_CHECK_EQ_IMPL(val1, val1_text, val2, val2_text)
0074 #define ABSL_LOG_INTERNAL_DCHECK_NE_IMPL(val1, val1_text, val2, val2_text) \
0075 ABSL_LOG_INTERNAL_CHECK_NE_IMPL(val1, val1_text, val2, val2_text)
0076 #define ABSL_LOG_INTERNAL_DCHECK_LE_IMPL(val1, val1_text, val2, val2_text) \
0077 ABSL_LOG_INTERNAL_CHECK_LE_IMPL(val1, val1_text, val2, val2_text)
0078 #define ABSL_LOG_INTERNAL_DCHECK_LT_IMPL(val1, val1_text, val2, val2_text) \
0079 ABSL_LOG_INTERNAL_CHECK_LT_IMPL(val1, val1_text, val2, val2_text)
0080 #define ABSL_LOG_INTERNAL_DCHECK_GE_IMPL(val1, val1_text, val2, val2_text) \
0081 ABSL_LOG_INTERNAL_CHECK_GE_IMPL(val1, val1_text, val2, val2_text)
0082 #define ABSL_LOG_INTERNAL_DCHECK_GT_IMPL(val1, val1_text, val2, val2_text) \
0083 ABSL_LOG_INTERNAL_CHECK_GT_IMPL(val1, val1_text, val2, val2_text)
0084 #else
0085 #define ABSL_LOG_INTERNAL_DCHECK_EQ_IMPL(val1, val1_text, val2, val2_text) \
0086 ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
0087 #define ABSL_LOG_INTERNAL_DCHECK_NE_IMPL(val1, val1_text, val2, val2_text) \
0088 ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
0089 #define ABSL_LOG_INTERNAL_DCHECK_LE_IMPL(val1, val1_text, val2, val2_text) \
0090 ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
0091 #define ABSL_LOG_INTERNAL_DCHECK_LT_IMPL(val1, val1_text, val2, val2_text) \
0092 ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
0093 #define ABSL_LOG_INTERNAL_DCHECK_GE_IMPL(val1, val1_text, val2, val2_text) \
0094 ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
0095 #define ABSL_LOG_INTERNAL_DCHECK_GT_IMPL(val1, val1_text, val2, val2_text) \
0096 ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
0097 #endif
0098
0099
0100 #define ABSL_LOG_INTERNAL_CHECK_OK_IMPL(status, status_text) \
0101 ABSL_LOG_INTERNAL_CHECK_OK(status, status_text)
0102 #define ABSL_LOG_INTERNAL_QCHECK_OK_IMPL(status, status_text) \
0103 ABSL_LOG_INTERNAL_QCHECK_OK(status, status_text)
0104 #ifndef NDEBUG
0105 #define ABSL_LOG_INTERNAL_DCHECK_OK_IMPL(status, status_text) \
0106 ABSL_LOG_INTERNAL_CHECK_OK(status, status_text)
0107 #else
0108 #define ABSL_LOG_INTERNAL_DCHECK_OK_IMPL(status, status_text) \
0109 ABSL_LOG_INTERNAL_DCHECK_NOP(status, nullptr)
0110 #endif
0111
0112
0113 #define ABSL_LOG_INTERNAL_CHECK_STREQ_IMPL(s1, s1_text, s2, s2_text) \
0114 ABSL_LOG_INTERNAL_CHECK_STROP(strcmp, ==, true, s1, s1_text, s2, s2_text)
0115 #define ABSL_LOG_INTERNAL_CHECK_STRNE_IMPL(s1, s1_text, s2, s2_text) \
0116 ABSL_LOG_INTERNAL_CHECK_STROP(strcmp, !=, false, s1, s1_text, s2, s2_text)
0117 #define ABSL_LOG_INTERNAL_CHECK_STRCASEEQ_IMPL(s1, s1_text, s2, s2_text) \
0118 ABSL_LOG_INTERNAL_CHECK_STROP(strcasecmp, ==, true, s1, s1_text, s2, s2_text)
0119 #define ABSL_LOG_INTERNAL_CHECK_STRCASENE_IMPL(s1, s1_text, s2, s2_text) \
0120 ABSL_LOG_INTERNAL_CHECK_STROP(strcasecmp, !=, false, s1, s1_text, s2, s2_text)
0121 #define ABSL_LOG_INTERNAL_QCHECK_STREQ_IMPL(s1, s1_text, s2, s2_text) \
0122 ABSL_LOG_INTERNAL_QCHECK_STROP(strcmp, ==, true, s1, s1_text, s2, s2_text)
0123 #define ABSL_LOG_INTERNAL_QCHECK_STRNE_IMPL(s1, s1_text, s2, s2_text) \
0124 ABSL_LOG_INTERNAL_QCHECK_STROP(strcmp, !=, false, s1, s1_text, s2, s2_text)
0125 #define ABSL_LOG_INTERNAL_QCHECK_STRCASEEQ_IMPL(s1, s1_text, s2, s2_text) \
0126 ABSL_LOG_INTERNAL_QCHECK_STROP(strcasecmp, ==, true, s1, s1_text, s2, s2_text)
0127 #define ABSL_LOG_INTERNAL_QCHECK_STRCASENE_IMPL(s1, s1_text, s2, s2_text) \
0128 ABSL_LOG_INTERNAL_QCHECK_STROP(strcasecmp, !=, false, s1, s1_text, s2, \
0129 s2_text)
0130 #ifndef NDEBUG
0131 #define ABSL_LOG_INTERNAL_DCHECK_STREQ_IMPL(s1, s1_text, s2, s2_text) \
0132 ABSL_LOG_INTERNAL_CHECK_STREQ_IMPL(s1, s1_text, s2, s2_text)
0133 #define ABSL_LOG_INTERNAL_DCHECK_STRCASEEQ_IMPL(s1, s1_text, s2, s2_text) \
0134 ABSL_LOG_INTERNAL_CHECK_STRCASEEQ_IMPL(s1, s1_text, s2, s2_text)
0135 #define ABSL_LOG_INTERNAL_DCHECK_STRNE_IMPL(s1, s1_text, s2, s2_text) \
0136 ABSL_LOG_INTERNAL_CHECK_STRNE_IMPL(s1, s1_text, s2, s2_text)
0137 #define ABSL_LOG_INTERNAL_DCHECK_STRCASENE_IMPL(s1, s1_text, s2, s2_text) \
0138 ABSL_LOG_INTERNAL_CHECK_STRCASENE_IMPL(s1, s1_text, s2, s2_text)
0139 #else
0140 #define ABSL_LOG_INTERNAL_DCHECK_STREQ_IMPL(s1, s1_text, s2, s2_text) \
0141 ABSL_LOG_INTERNAL_DCHECK_NOP(s1, s2)
0142 #define ABSL_LOG_INTERNAL_DCHECK_STRCASEEQ_IMPL(s1, s1_text, s2, s2_text) \
0143 ABSL_LOG_INTERNAL_DCHECK_NOP(s1, s2)
0144 #define ABSL_LOG_INTERNAL_DCHECK_STRNE_IMPL(s1, s1_text, s2, s2_text) \
0145 ABSL_LOG_INTERNAL_DCHECK_NOP(s1, s2)
0146 #define ABSL_LOG_INTERNAL_DCHECK_STRCASENE_IMPL(s1, s1_text, s2, s2_text) \
0147 ABSL_LOG_INTERNAL_DCHECK_NOP(s1, s2)
0148 #endif
0149
0150 #endif