ASTDiagnostic.h revision 686775deca8b8685eb90801495880e3abdd844c2
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,\ 197d2b8c1fcc2b707be78b09930a7767477822462fDouglas Gregor SFINAE,ACCESS,CATEGORY,BRIEF,FULL) 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 2779a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor /// \brief Diagnostic 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 3479a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor /// \c Diagnostic::SetArgToStringFn(), where the cookie is an \c ASTContext 3579a9a3417929e340e84dcbc06ed9c3a277cad959Douglas Gregor /// pointer. 360673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth void FormatASTNodeDiagnosticArgument( 370673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth Diagnostic::ArgumentKind Kind, 380673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth intptr_t Val, 390673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth const char *Modifier, 400673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth unsigned ModLen, 410673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth const char *Argument, 420673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth unsigned ArgLen, 430673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth const Diagnostic::ArgumentValue *PrevArgs, 440673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth unsigned NumPrevArgs, 45686775deca8b8685eb90801495880e3abdd844c2Chris Lattner SmallVectorImpl<char> &Output, 460673cb30340aadaede7b795c763b00f6b64e611cChandler Carruth void *Cookie, 47686775deca8b8685eb90801495880e3abdd844c2Chris Lattner SmallVectorImpl<intptr_t> &QualTypeVals); 48132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner} // end namespace clang 49132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner 50132b5beaf31da1213bb95b4631ae390f5e1052c1Chris Lattner#endif 51