Rewrite RTC_CHECK macros to work in constexpr expression in gcc
tested with https://webrtc-review.googlesource.com/c/src/+/161642/5 Bug: webrtc:11191 Change-Id: Ia4ad21cb6148d7d86182d8bfcaec42966fd22eb2 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166524 Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30317}
This commit is contained in:

committed by
Commit Bot

parent
629de6f7ed
commit
eeb9ccaa00
@ -368,28 +368,32 @@ class FatalLogCall final {
|
||||
// Don't use this macro directly in your code, use RTC_CHECK_EQ et al below.
|
||||
#if RTC_CHECK_MSG_ENABLED
|
||||
#define RTC_CHECK(condition) \
|
||||
while (!(condition)) \
|
||||
rtc::webrtc_checks_impl::FatalLogCall<false>(__FILE__, __LINE__, \
|
||||
#condition) & \
|
||||
(condition) ? static_cast<void>(0) \
|
||||
: rtc::webrtc_checks_impl::FatalLogCall<false>( \
|
||||
__FILE__, __LINE__, #condition) & \
|
||||
rtc::webrtc_checks_impl::LogStreamer<>()
|
||||
|
||||
#define RTC_CHECK_OP(name, op, val1, val2) \
|
||||
while (!rtc::Safe##name((val1), (val2))) \
|
||||
rtc::webrtc_checks_impl::FatalLogCall<true>(__FILE__, __LINE__, \
|
||||
rtc::Safe##name((val1), (val2)) \
|
||||
? static_cast<void>(0) \
|
||||
: rtc::webrtc_checks_impl::FatalLogCall<true>(__FILE__, __LINE__, \
|
||||
#val1 " " #op " " #val2) & \
|
||||
rtc::webrtc_checks_impl::LogStreamer<>() << (val1) << (val2)
|
||||
#else
|
||||
#define RTC_CHECK(condition) \
|
||||
while (!(condition)) \
|
||||
true \
|
||||
? rtc::webrtc_checks_impl::FatalLogCall<false>(__FILE__, __LINE__, "") & \
|
||||
(condition) \
|
||||
? static_cast<void>(0) \
|
||||
: true ? rtc::webrtc_checks_impl::FatalLogCall<false>(__FILE__, \
|
||||
__LINE__, "") & \
|
||||
rtc::webrtc_checks_impl::LogStreamer<>() \
|
||||
: rtc::webrtc_checks_impl::FatalLogCall<false>("", 0, "") & \
|
||||
rtc::webrtc_checks_impl::LogStreamer<>()
|
||||
|
||||
#define RTC_CHECK_OP(name, op, val1, val2) \
|
||||
while (!rtc::Safe##name((val1), (val2))) \
|
||||
true ? rtc::webrtc_checks_impl::FatalLogCall<true>(__FILE__, __LINE__, "") & \
|
||||
rtc::Safe##name((val1), (val2)) \
|
||||
? static_cast<void>(0) \
|
||||
: true ? rtc::webrtc_checks_impl::FatalLogCall<true>(__FILE__, __LINE__, \
|
||||
"") & \
|
||||
rtc::webrtc_checks_impl::LogStreamer<>() \
|
||||
: rtc::webrtc_checks_impl::FatalLogCall<false>("", 0, "") & \
|
||||
rtc::webrtc_checks_impl::LogStreamer<>()
|
||||
|
Reference in New Issue
Block a user