llvm/clang/include/clang/Basic/DiagnosticOptions.h

//===- DiagnosticOptions.h --------------------------------------*- 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
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_CLANG_BASIC_DIAGNOSTICOPTIONS_H
#define LLVM_CLANG_BASIC_DIAGNOSTICOPTIONS_H

#include "clang/Basic/LLVM.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include <string>
#include <type_traits>
#include <vector>

namespace llvm {
namespace opt {
class ArgList;
} // namespace opt
} // namespace llvm

namespace clang {
class DiagnosticsEngine;

/// Specifies which overload candidates to display when overload
/// resolution fails.
enum OverloadsShown : unsigned {};

/// A bitmask representing the diagnostic levels used by
/// VerifyDiagnosticConsumer.
enum class DiagnosticLevelMask : unsigned {};

inline DiagnosticLevelMask operator~(DiagnosticLevelMask M) {}

inline DiagnosticLevelMask operator|(DiagnosticLevelMask LHS,
                                     DiagnosticLevelMask RHS) {}

inline DiagnosticLevelMask operator&(DiagnosticLevelMask LHS,
                                     DiagnosticLevelMask RHS) {}

raw_ostream& operator<<(raw_ostream& Out, DiagnosticLevelMask M);

/// Options for controlling the compiler diagnostics engine.
class DiagnosticOptions : public RefCountedBase<DiagnosticOptions>{};

TextDiagnosticFormat;

} // namespace clang

#endif // LLVM_CLANG_BASIC_DIAGNOSTICOPTIONS_H