tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

check_impl.h (8247B)


      1 // Copyright 2022 The Abseil Authors.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //      https://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 #ifndef ABSL_LOG_INTERNAL_CHECK_IMPL_H_
     16 #define ABSL_LOG_INTERNAL_CHECK_IMPL_H_
     17 
     18 #include "absl/base/optimization.h"
     19 #include "absl/log/internal/check_op.h"
     20 #include "absl/log/internal/conditions.h"
     21 #include "absl/log/internal/log_message.h"
     22 #include "absl/log/internal/strip.h"
     23 
     24 // CHECK
     25 #define ABSL_LOG_INTERNAL_CHECK_IMPL(condition, condition_text)       \
     26  ABSL_LOG_INTERNAL_CONDITION_FATAL(STATELESS,                        \
     27                                    ABSL_PREDICT_FALSE(!(condition))) \
     28  ABSL_LOG_INTERNAL_CHECK(condition_text).InternalStream()
     29 
     30 #define ABSL_LOG_INTERNAL_QCHECK_IMPL(condition, condition_text)       \
     31  ABSL_LOG_INTERNAL_CONDITION_QFATAL(STATELESS,                        \
     32                                     ABSL_PREDICT_FALSE(!(condition))) \
     33  ABSL_LOG_INTERNAL_QCHECK(condition_text).InternalStream()
     34 
     35 #define ABSL_LOG_INTERNAL_PCHECK_IMPL(condition, condition_text) \
     36  ABSL_LOG_INTERNAL_CHECK_IMPL(condition, condition_text).WithPerror()
     37 
     38 #ifndef NDEBUG
     39 #define ABSL_LOG_INTERNAL_DCHECK_IMPL(condition, condition_text) \
     40  ABSL_LOG_INTERNAL_CHECK_IMPL(condition, condition_text)
     41 #else
     42 #define ABSL_LOG_INTERNAL_DCHECK_IMPL(condition, condition_text) \
     43  ABSL_LOG_INTERNAL_CHECK_IMPL(true || (condition), "true")
     44 #endif
     45 
     46 // CHECK_EQ
     47 #define ABSL_LOG_INTERNAL_CHECK_EQ_IMPL(val1, val1_text, val2, val2_text) \
     48  ABSL_LOG_INTERNAL_CHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
     49 #define ABSL_LOG_INTERNAL_CHECK_NE_IMPL(val1, val1_text, val2, val2_text) \
     50  ABSL_LOG_INTERNAL_CHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
     51 #define ABSL_LOG_INTERNAL_CHECK_LE_IMPL(val1, val1_text, val2, val2_text) \
     52  ABSL_LOG_INTERNAL_CHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
     53 #define ABSL_LOG_INTERNAL_CHECK_LT_IMPL(val1, val1_text, val2, val2_text) \
     54  ABSL_LOG_INTERNAL_CHECK_OP(Check_LT, <, val1, val1_text, val2, val2_text)
     55 #define ABSL_LOG_INTERNAL_CHECK_GE_IMPL(val1, val1_text, val2, val2_text) \
     56  ABSL_LOG_INTERNAL_CHECK_OP(Check_GE, >=, val1, val1_text, val2, val2_text)
     57 #define ABSL_LOG_INTERNAL_CHECK_GT_IMPL(val1, val1_text, val2, val2_text) \
     58  ABSL_LOG_INTERNAL_CHECK_OP(Check_GT, >, val1, val1_text, val2, val2_text)
     59 #define ABSL_LOG_INTERNAL_QCHECK_EQ_IMPL(val1, val1_text, val2, val2_text) \
     60  ABSL_LOG_INTERNAL_QCHECK_OP(Check_EQ, ==, val1, val1_text, val2, val2_text)
     61 #define ABSL_LOG_INTERNAL_QCHECK_NE_IMPL(val1, val1_text, val2, val2_text) \
     62  ABSL_LOG_INTERNAL_QCHECK_OP(Check_NE, !=, val1, val1_text, val2, val2_text)
     63 #define ABSL_LOG_INTERNAL_QCHECK_LE_IMPL(val1, val1_text, val2, val2_text) \
     64  ABSL_LOG_INTERNAL_QCHECK_OP(Check_LE, <=, val1, val1_text, val2, val2_text)
     65 #define ABSL_LOG_INTERNAL_QCHECK_LT_IMPL(val1, val1_text, val2, val2_text) \
     66  ABSL_LOG_INTERNAL_QCHECK_OP(Check_LT, <, val1, val1_text, val2, val2_text)
     67 #define ABSL_LOG_INTERNAL_QCHECK_GE_IMPL(val1, val1_text, val2, val2_text) \
     68  ABSL_LOG_INTERNAL_QCHECK_OP(Check_GE, >=, val1, val1_text, val2, val2_text)
     69 #define ABSL_LOG_INTERNAL_QCHECK_GT_IMPL(val1, val1_text, val2, val2_text) \
     70  ABSL_LOG_INTERNAL_QCHECK_OP(Check_GT, >, val1, val1_text, val2, val2_text)
     71 #ifndef NDEBUG
     72 #define ABSL_LOG_INTERNAL_DCHECK_EQ_IMPL(val1, val1_text, val2, val2_text) \
     73  ABSL_LOG_INTERNAL_CHECK_EQ_IMPL(val1, val1_text, val2, val2_text)
     74 #define ABSL_LOG_INTERNAL_DCHECK_NE_IMPL(val1, val1_text, val2, val2_text) \
     75  ABSL_LOG_INTERNAL_CHECK_NE_IMPL(val1, val1_text, val2, val2_text)
     76 #define ABSL_LOG_INTERNAL_DCHECK_LE_IMPL(val1, val1_text, val2, val2_text) \
     77  ABSL_LOG_INTERNAL_CHECK_LE_IMPL(val1, val1_text, val2, val2_text)
     78 #define ABSL_LOG_INTERNAL_DCHECK_LT_IMPL(val1, val1_text, val2, val2_text) \
     79  ABSL_LOG_INTERNAL_CHECK_LT_IMPL(val1, val1_text, val2, val2_text)
     80 #define ABSL_LOG_INTERNAL_DCHECK_GE_IMPL(val1, val1_text, val2, val2_text) \
     81  ABSL_LOG_INTERNAL_CHECK_GE_IMPL(val1, val1_text, val2, val2_text)
     82 #define ABSL_LOG_INTERNAL_DCHECK_GT_IMPL(val1, val1_text, val2, val2_text) \
     83  ABSL_LOG_INTERNAL_CHECK_GT_IMPL(val1, val1_text, val2, val2_text)
     84 #else  // ndef NDEBUG
     85 #define ABSL_LOG_INTERNAL_DCHECK_EQ_IMPL(val1, val1_text, val2, val2_text) \
     86  ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
     87 #define ABSL_LOG_INTERNAL_DCHECK_NE_IMPL(val1, val1_text, val2, val2_text) \
     88  ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
     89 #define ABSL_LOG_INTERNAL_DCHECK_LE_IMPL(val1, val1_text, val2, val2_text) \
     90  ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
     91 #define ABSL_LOG_INTERNAL_DCHECK_LT_IMPL(val1, val1_text, val2, val2_text) \
     92  ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
     93 #define ABSL_LOG_INTERNAL_DCHECK_GE_IMPL(val1, val1_text, val2, val2_text) \
     94  ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
     95 #define ABSL_LOG_INTERNAL_DCHECK_GT_IMPL(val1, val1_text, val2, val2_text) \
     96  ABSL_LOG_INTERNAL_DCHECK_NOP(val1, val2)
     97 #endif  // def NDEBUG
     98 
     99 // CHECK_OK
    100 #define ABSL_LOG_INTERNAL_CHECK_OK_IMPL(status, status_text) \
    101  ABSL_LOG_INTERNAL_CHECK_OK(status, status_text)
    102 #define ABSL_LOG_INTERNAL_QCHECK_OK_IMPL(status, status_text) \
    103  ABSL_LOG_INTERNAL_QCHECK_OK(status, status_text)
    104 #ifndef NDEBUG
    105 #define ABSL_LOG_INTERNAL_DCHECK_OK_IMPL(status, status_text) \
    106  ABSL_LOG_INTERNAL_CHECK_OK(status, status_text)
    107 #else
    108 #define ABSL_LOG_INTERNAL_DCHECK_OK_IMPL(status, status_text) \
    109  ABSL_LOG_INTERNAL_DCHECK_NOP(status, nullptr)
    110 #endif
    111 
    112 // CHECK_STREQ
    113 #define ABSL_LOG_INTERNAL_CHECK_STREQ_IMPL(s1, s1_text, s2, s2_text) \
    114  ABSL_LOG_INTERNAL_CHECK_STROP(strcmp, ==, true, s1, s1_text, s2, s2_text)
    115 #define ABSL_LOG_INTERNAL_CHECK_STRNE_IMPL(s1, s1_text, s2, s2_text) \
    116  ABSL_LOG_INTERNAL_CHECK_STROP(strcmp, !=, false, s1, s1_text, s2, s2_text)
    117 #define ABSL_LOG_INTERNAL_CHECK_STRCASEEQ_IMPL(s1, s1_text, s2, s2_text) \
    118  ABSL_LOG_INTERNAL_CHECK_STROP(strcasecmp, ==, true, s1, s1_text, s2, s2_text)
    119 #define ABSL_LOG_INTERNAL_CHECK_STRCASENE_IMPL(s1, s1_text, s2, s2_text) \
    120  ABSL_LOG_INTERNAL_CHECK_STROP(strcasecmp, !=, false, s1, s1_text, s2, s2_text)
    121 #define ABSL_LOG_INTERNAL_QCHECK_STREQ_IMPL(s1, s1_text, s2, s2_text) \
    122  ABSL_LOG_INTERNAL_QCHECK_STROP(strcmp, ==, true, s1, s1_text, s2, s2_text)
    123 #define ABSL_LOG_INTERNAL_QCHECK_STRNE_IMPL(s1, s1_text, s2, s2_text) \
    124  ABSL_LOG_INTERNAL_QCHECK_STROP(strcmp, !=, false, s1, s1_text, s2, s2_text)
    125 #define ABSL_LOG_INTERNAL_QCHECK_STRCASEEQ_IMPL(s1, s1_text, s2, s2_text) \
    126  ABSL_LOG_INTERNAL_QCHECK_STROP(strcasecmp, ==, true, s1, s1_text, s2, s2_text)
    127 #define ABSL_LOG_INTERNAL_QCHECK_STRCASENE_IMPL(s1, s1_text, s2, s2_text) \
    128  ABSL_LOG_INTERNAL_QCHECK_STROP(strcasecmp, !=, false, s1, s1_text, s2,  \
    129                                 s2_text)
    130 #ifndef NDEBUG
    131 #define ABSL_LOG_INTERNAL_DCHECK_STREQ_IMPL(s1, s1_text, s2, s2_text) \
    132  ABSL_LOG_INTERNAL_CHECK_STREQ_IMPL(s1, s1_text, s2, s2_text)
    133 #define ABSL_LOG_INTERNAL_DCHECK_STRCASEEQ_IMPL(s1, s1_text, s2, s2_text) \
    134  ABSL_LOG_INTERNAL_CHECK_STRCASEEQ_IMPL(s1, s1_text, s2, s2_text)
    135 #define ABSL_LOG_INTERNAL_DCHECK_STRNE_IMPL(s1, s1_text, s2, s2_text) \
    136  ABSL_LOG_INTERNAL_CHECK_STRNE_IMPL(s1, s1_text, s2, s2_text)
    137 #define ABSL_LOG_INTERNAL_DCHECK_STRCASENE_IMPL(s1, s1_text, s2, s2_text) \
    138  ABSL_LOG_INTERNAL_CHECK_STRCASENE_IMPL(s1, s1_text, s2, s2_text)
    139 #else  // ndef NDEBUG
    140 #define ABSL_LOG_INTERNAL_DCHECK_STREQ_IMPL(s1, s1_text, s2, s2_text) \
    141  ABSL_LOG_INTERNAL_DCHECK_NOP(s1, s2)
    142 #define ABSL_LOG_INTERNAL_DCHECK_STRCASEEQ_IMPL(s1, s1_text, s2, s2_text) \
    143  ABSL_LOG_INTERNAL_DCHECK_NOP(s1, s2)
    144 #define ABSL_LOG_INTERNAL_DCHECK_STRNE_IMPL(s1, s1_text, s2, s2_text) \
    145  ABSL_LOG_INTERNAL_DCHECK_NOP(s1, s2)
    146 #define ABSL_LOG_INTERNAL_DCHECK_STRCASENE_IMPL(s1, s1_text, s2, s2_text) \
    147  ABSL_LOG_INTERNAL_DCHECK_NOP(s1, s2)
    148 #endif  // def NDEBUG
    149 
    150 #endif  // ABSL_LOG_INTERNAL_CHECK_IMPL_H_