36#define DIAG_STATE(_) \ 
 
   45#define DEFINE_ENUM(name) name, 
 
   53#define DEFINE_CASE(name)   \ 
 
   80        inline static bool IsClang(
const std::string name) {
 
   81            return name.find(
"-clang") == 0;
 
 
   85            return name.find(
"-Werror=") == 0;
 
 
   89            return name.find(
"-Wno-error=") == 0;
 
 
   92        inline static bool IsDisable(
const std::string name) {
 
   93            return name.find(
"-Wno-") == 0;
 
 
   96        inline static bool IsEnable(
const std::string name) {
 
 
  128            DiagPtr diag = std::make_shared<Diag>();
 
  129            if (!diag->ParseArgs(argc, argv)) {
 
 
  141        bool Emit(
const char *name, 
const TermPtr term = 
nullptr);
 
  143        bool Register(
const char *name, 
State state, 
const char *desc = 
nullptr);
 
  154            for (
int i = 0; i < argc; i++) {
 
 
 
static std::string RemoveDiagPrefix(const std::string name)
 
static const char * toString(State state)
 
static bool IsClang(const std::string name)
 
static bool IsEnable(const std::string name)
 
bool TestIgnore(const char *name)
 
void Push(const TermPtr term=nullptr)
 
Diag(const Diag &)=delete
 
bool Apply(const char *name, State state, const TermPtr term=nullptr)
 
void Pop(const TermPtr term=nullptr)
 
static const char * DIAG_MACRO_NOT_FOUND
 
Diag::State Test(const char *name)
 
std::vector< DataDiag > DiagListType
 
bool Emit(const char *name, const TermPtr term=nullptr)
 
bool Register(const char *name, State state, const char *desc=nullptr)
 
static const char * DIAG_MACRO_STORAGE_NOT_EXIST
 
static bool IsDisable(const std::string name)
 
static const char * DIAG_EXTRA_TOKENS
 
const Diag & operator=(const Diag &)=delete
 
static bool IsTurnNoError(const std::string name)
 
static const char * DIAG_FILL_REMAINDER
 
bool ParseArgs(int argc, const char **argv)
 
static std::string ChangeState(const std::string name, State from_state, State to_state)
 
DiagStackType m_diag_stack
 
std::vector< DiagListType > DiagStackType
 
static DiagPtr Init(int argc=0, const char **argv=nullptr)
 
static const char * DIAG_ERROR_LIMIT
 
static bool IsTurnError(const std::string name)
 
#define DEFINE_CASE(name)
 
#define LOG_RUNTIME(format,...)
 
#define ASSERT(condition)
 
std::shared_ptr< Term > TermPtr
 
std::shared_ptr< Diag > DiagPtr