Commit ae01864b authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

Add raw_assert() variants for cases where we cannot log.

Remove a different raw_assert() macro declared in log.c
parent 9fa73003
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -50,8 +50,6 @@
#define TRUNCATED_STR_LEN 14
/** @} */

#define raw_assert(x) assert(x) // assert OK

/** Defining compile-time constants for Tor log levels (used by the Rust
 * log wrapper at src/rust/tor_log) */
const int LOG_WARN_ = LOG_WARN;
@@ -91,7 +89,7 @@ sev_to_string(int severity)
    case LOG_ERR:     return "err";
    default:     /* Call assert, not tor_assert, since tor_assert
                  * calls log on failure. */
                      raw_assert(0); return "UNKNOWN"; // LCOV_EXCL_LINE
                 raw_assert_unreached(); return "UNKNOWN"; // LCOV_EXCL_LINE
  }
}

@@ -1536,4 +1534,3 @@ truncate_logs(void)
    }
  }
}
+15 −1
Original line number Diff line number Diff line
@@ -55,6 +55,21 @@
#error "Sorry; we don't support building with NDEBUG."
#endif /* defined(NDEBUG) */

/* The raw_assert...() variants are for use within code that can't call
 * tor_assertion_failed_() because of call circularity issues. */
#define raw_assert(expr) STMT_BEGIN                             \
  if (!(expr)) {                                                \
    fprintf(stderr, "RAW ASSERTION FAILURE AT %s:%d: %s\n",     \
          __FILE__, __LINE__, #expr);                           \
    abort();                                                    \
  }                                                             \
  STMT_END
#define raw_assert_unreached(expr) raw_assert(0)
#define raw_assert_unreached_msg(msg) STMT_BEGIN \
  fprintf(stderr, "ERROR: %s\n", (msg));         \
  raw_assert_unreached();                        \
  STMT_END

/* Sometimes we don't want to use assertions during branch coverage tests; it
 * leads to tons of unreached branches which in reality are only assertions we
 * didn't hit. */
@@ -199,4 +214,3 @@ void tor_set_failed_assertion_callback(void (*fn)(void));
#endif /* defined(TOR_UNIT_TESTS) */

#endif /* !defined(TOR_UTIL_BUG_H) */