mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 00:06:09 +03:00
47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
// Copyright 2020 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef BASE_NOTREACHED_H_
|
|
#define BASE_NOTREACHED_H_
|
|
|
|
#include "base/check.h"
|
|
#include "base/logging_buildflags.h"
|
|
|
|
namespace logging {
|
|
|
|
#if BUILDFLAG(ENABLE_LOG_ERROR_NOT_REACHED)
|
|
void BASE_EXPORT LogErrorNotReached(const char* file, int line);
|
|
#define NOTREACHED() \
|
|
true ? ::logging::LogErrorNotReached(__FILE__, __LINE__) \
|
|
: EAT_CHECK_STREAM_PARAMS()
|
|
#else
|
|
#define NOTREACHED() DCHECK(false)
|
|
#endif
|
|
|
|
// The NOTIMPLEMENTED() macro annotates codepaths which have not been
|
|
// implemented yet. If output spam is a serious concern,
|
|
// NOTIMPLEMENTED_LOG_ONCE can be used.
|
|
#if DCHECK_IS_ON()
|
|
#define NOTIMPLEMENTED() \
|
|
::logging::CheckError::NotImplemented(__FILE__, __LINE__, \
|
|
__PRETTY_FUNCTION__) \
|
|
.stream()
|
|
#else
|
|
#define NOTIMPLEMENTED() EAT_CHECK_STREAM_PARAMS()
|
|
#endif
|
|
|
|
#define NOTIMPLEMENTED_LOG_ONCE() \
|
|
{ \
|
|
static bool logged_once = false; \
|
|
if (!logged_once) { \
|
|
NOTIMPLEMENTED(); \
|
|
logged_once = true; \
|
|
} \
|
|
} \
|
|
EAT_CHECK_STREAM_PARAMS()
|
|
|
|
} // namespace logging
|
|
|
|
#endif // BASE_NOTREACHED_H_
|