llvm/compiler-rt/lib/orc/debug.h

//===- debug.h - Debugging output utilities ---------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file is a part of the ORC runtime support library.
//
//===----------------------------------------------------------------------===//

#ifndef ORC_RT_DEBUG_H
#define ORC_RT_DEBUG_H

#include <atomic>

#ifndef NDEBUG

namespace __orc_rt {

extern std::atomic<const char *> DebugTypes;
extern char DebugTypesAll;
extern char DebugTypesNone;

const char *initializeDebug();
bool debugTypeEnabled(const char *Type, const char *Types);
void printdbg(const char *format, ...);

} // namespace __orc_rt

#define ORC_RT_DEBUG_WITH_TYPE

#else

#define ORC_RT_DEBUG_WITH_TYPE(TYPE, X)

#endif // !NDEBUG

#define ORC_RT_DEBUG(X)

#endif // ORC_RT_DEBUG_H