Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:40:52

0001 // Copyright 2022 The Abseil Authors.
0002 //
0003 // Licensed under the Apache License, Version 2.0 (the "License");
0004 // you may not use this file except in compliance with the License.
0005 // You may obtain a copy of the License at
0006 //
0007 //      https://www.apache.org/licenses/LICENSE-2.0
0008 //
0009 // Unless required by applicable law or agreed to in writing, software
0010 // distributed under the License is distributed on an "AS IS" BASIS,
0011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0012 // See the License for the specific language governing permissions and
0013 // limitations under the License.
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 // CHECK
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 // CHECK_EQ
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  // ndef NDEBUG
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  // def NDEBUG
0098 
0099 // CHECK_OK
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 // CHECK_STREQ
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  // ndef NDEBUG
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  // def NDEBUG
0149 
0150 #endif  // ABSL_LOG_INTERNAL_CHECK_IMPL_H_