179a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor//===--- ASTDiagnostic.h - Diagnostics for the AST library ------*- C++ -*-===// 247354ed151fe0543e138ccebd3dfe7acfcb291d1Chris Lattner// 347354ed151fe0543e138ccebd3dfe7acfcb291d1Chris Lattner// The LLVM Compiler Infrastructure 447354ed151fe0543e138ccebd3dfe7acfcb291d1Chris Lattner// 547354ed151fe0543e138ccebd3dfe7acfcb291d1Chris Lattner// This file is distributed under the University of Illinois Open Source 647354ed151fe0543e138ccebd3dfe7acfcb291d1Chris Lattner// License. See LICENSE.TXT for details. 747354ed151fe0543e138ccebd3dfe7acfcb291d1Chris Lattner// 847354ed151fe0543e138ccebd3dfe7acfcb291d1Chris Lattner//===----------------------------------------------------------------------===// 947354ed151fe0543e138ccebd3dfe7acfcb291d1Chris Lattner 10132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner#ifndef LLVM_CLANG_DIAGNOSTICAST_H 11132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner#define LLVM_CLANG_DIAGNOSTICAST_H 12132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner 13500d3297d2a21edeac4d46cbcbe21bc2352c2a28Chris Lattner#include "clang/Basic/Diagnostic.h" 14132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner 15132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattnernamespace clang { 161eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump namespace diag { 17132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner enum { 187d2b8c1fcc2b707be78b09930a7767477822462fDouglas Gregor#define DIAG(ENUM,FLAGS,DEFAULT_MAPPING,DESC,GROUP,\ 193347b497157d36cf280d1d9f52956faa6e702f34Richard Smith SFINAE,NOWERROR,SHOWINSYSHEADER,CATEGORY) ENUM, 20132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner#define ASTSTART 214d7a089144f336b11e5e8ce437b3b27bce2b310dSebastian Redl#include "clang/Basic/DiagnosticASTKinds.inc" 2219e8e2cffc19606d0f44e7c2897cd126ffd3f9b0Chris Lattner#undef DIAG 23132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner NUM_BUILTIN_AST_DIAGNOSTICS 24132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner }; 25132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner } // end namespace diag 2679a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor 27d6471f7c1921c7802804ce3ff6fe9768310f72b9David Blaikie /// \brief DiagnosticsEngine argument formatting function for diagnostics that 2879a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor /// involve AST nodes. 2979a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor /// 3079a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor /// This function formats diagnostic arguments for various AST nodes, 3179a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor /// including types, declaration names, nested name specifiers, and 3279a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor /// declaration contexts, into strings that can be printed as part of 3379a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor /// diagnostics. It is meant to be used as the argument to 34d6471f7c1921c7802804ce3ff6fe9768310f72b9David Blaikie /// \c DiagnosticsEngine::SetArgToStringFn(), where the cookie is an \c 35d6471f7c1921c7802804ce3ff6fe9768310f72b9David Blaikie /// ASTContext pointer. 360673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth void FormatASTNodeDiagnosticArgument( 37d6471f7c1921c7802804ce3ff6fe9768310f72b9David Blaikie DiagnosticsEngine::ArgumentKind Kind, 380673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth intptr_t Val, 39ef8225444452a1486bd721f3285301fe84643b00Stephen Hines StringRef Modifier, 40ef8225444452a1486bd721f3285301fe84643b00Stephen Hines StringRef Argument, 41ef8225444452a1486bd721f3285301fe84643b00Stephen Hines ArrayRef<DiagnosticsEngine::ArgumentValue> PrevArgs, 42686775deca8b8685eb90801495880e3abdd844c2Chris Lattner SmallVectorImpl<char> &Output, 430673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth void *Cookie, 44341785ec52f87c0803ba52dc88faac4e136f8593Bill Wendling ArrayRef<intptr_t> QualTypeVals); 45132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner} // end namespace clang 46132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner 47132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner#endif 48