1 //===--- ASTDiagnostic.h - Diagnostics for the AST library ------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_CLANG_AST_ASTDIAGNOSTIC_H 11 #define LLVM_CLANG_AST_ASTDIAGNOSTIC_H 12 13 #include "clang/Basic/Diagnostic.h" 14 15 namespace clang { 16 namespace diag { 17 enum { 18 #define DIAG(ENUM,FLAGS,DEFAULT_MAPPING,DESC,GROUP,\ 19 SFINAE,NOWERROR,SHOWINSYSHEADER,CATEGORY) ENUM, 20 #define ASTSTART 21 #include "clang/Basic/DiagnosticASTKinds.inc" 22 #undef DIAG 23 NUM_BUILTIN_AST_DIAGNOSTICS 24 }; 25 } // end namespace diag 26 27 /// \brief DiagnosticsEngine argument formatting function for diagnostics that 28 /// involve AST nodes. 29 /// 30 /// This function formats diagnostic arguments for various AST nodes, 31 /// including types, declaration names, nested name specifiers, and 32 /// declaration contexts, into strings that can be printed as part of 33 /// diagnostics. It is meant to be used as the argument to 34 /// \c DiagnosticsEngine::SetArgToStringFn(), where the cookie is an \c 35 /// ASTContext pointer. 36 void FormatASTNodeDiagnosticArgument( 37 DiagnosticsEngine::ArgumentKind Kind, 38 intptr_t Val, 39 StringRef Modifier, 40 StringRef Argument, 41 ArrayRef<DiagnosticsEngine::ArgumentValue> PrevArgs, 42 SmallVectorImpl<char> &Output, 43 void *Cookie, 44 ArrayRef<intptr_t> QualTypeVals); 45 } // end namespace clang 46 47 #endif 48