1203955Srdivacky//===--- ASTDiagnostic.h - Diagnostics for the AST library ------*- C++ -*-===// 2193326Sed// 3193326Sed// The LLVM Compiler Infrastructure 4193326Sed// 5193326Sed// This file is distributed under the University of Illinois Open Source 6193326Sed// License. See LICENSE.TXT for details. 7193326Sed// 8193326Sed//===----------------------------------------------------------------------===// 9193326Sed 10193326Sed#ifndef LLVM_CLANG_DIAGNOSTICAST_H 11193326Sed#define LLVM_CLANG_DIAGNOSTICAST_H 12193326Sed 13193326Sed#include "clang/Basic/Diagnostic.h" 14193326Sed 15193326Sednamespace clang { 16198092Srdivacky namespace diag { 17193326Sed enum { 18221345Sdim#define DIAG(ENUM,FLAGS,DEFAULT_MAPPING,DESC,GROUP,\ 19263508Sdim SFINAE,NOWERROR,SHOWINSYSHEADER,CATEGORY) ENUM, 20193326Sed#define ASTSTART 21193326Sed#include "clang/Basic/DiagnosticASTKinds.inc" 22193326Sed#undef DIAG 23193326Sed NUM_BUILTIN_AST_DIAGNOSTICS 24193326Sed }; 25193326Sed } // end namespace diag 26203955Srdivacky 27226633Sdim /// \brief DiagnosticsEngine argument formatting function for diagnostics that 28203955Srdivacky /// involve AST nodes. 29203955Srdivacky /// 30203955Srdivacky /// This function formats diagnostic arguments for various AST nodes, 31203955Srdivacky /// including types, declaration names, nested name specifiers, and 32203955Srdivacky /// declaration contexts, into strings that can be printed as part of 33203955Srdivacky /// diagnostics. It is meant to be used as the argument to 34226633Sdim /// \c DiagnosticsEngine::SetArgToStringFn(), where the cookie is an \c 35226633Sdim /// ASTContext pointer. 36224145Sdim void FormatASTNodeDiagnosticArgument( 37226633Sdim DiagnosticsEngine::ArgumentKind Kind, 38224145Sdim intptr_t Val, 39224145Sdim const char *Modifier, 40224145Sdim unsigned ModLen, 41224145Sdim const char *Argument, 42224145Sdim unsigned ArgLen, 43226633Sdim const DiagnosticsEngine::ArgumentValue *PrevArgs, 44224145Sdim unsigned NumPrevArgs, 45226633Sdim SmallVectorImpl<char> &Output, 46224145Sdim void *Cookie, 47234353Sdim ArrayRef<intptr_t> QualTypeVals); 48193326Sed} // end namespace clang 49193326Sed 50193326Sed#endif 51