1292915Sdim//===-- AMDGPUDiagnosticInfoUnsupported.h - Error reporting -----*- C++ -*-===// 2292915Sdim// 3292915Sdim// The LLVM Compiler Infrastructure 4292915Sdim// 5292915Sdim// This file is distributed under the University of Illinois Open Source 6292915Sdim// License. See LICENSE.TXT for details. 7292915Sdim// 8292915Sdim//===----------------------------------------------------------------------===// 9292915Sdim 10292915Sdim#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUDIAGNOSTICINFOUNSUPPORTED_H 11292915Sdim#define LLVM_LIB_TARGET_AMDGPU_AMDGPUDIAGNOSTICINFOUNSUPPORTED_H 12292915Sdim 13292915Sdim#include "llvm/IR/DiagnosticInfo.h" 14292915Sdim#include "llvm/IR/DiagnosticPrinter.h" 15292915Sdim 16292915Sdimnamespace llvm { 17292915Sdim 18292915Sdim/// Diagnostic information for unimplemented or unsupported feature reporting. 19292915Sdimclass DiagnosticInfoUnsupported : public DiagnosticInfo { 20292915Sdimprivate: 21292915Sdim const Twine &Description; 22292915Sdim const Function &Fn; 23292915Sdim 24292915Sdim static int KindID; 25292915Sdim 26292915Sdim static int getKindID() { 27292915Sdim if (KindID == 0) 28292915Sdim KindID = llvm::getNextAvailablePluginDiagnosticKind(); 29292915Sdim return KindID; 30292915Sdim } 31292915Sdim 32292915Sdimpublic: 33292915Sdim DiagnosticInfoUnsupported(const Function &Fn, const Twine &Desc, 34292915Sdim DiagnosticSeverity Severity = DS_Error); 35292915Sdim 36292915Sdim const Function &getFunction() const { return Fn; } 37292915Sdim const Twine &getDescription() const { return Description; } 38292915Sdim 39292915Sdim void print(DiagnosticPrinter &DP) const override; 40292915Sdim 41292915Sdim static bool classof(const DiagnosticInfo *DI) { 42292915Sdim return DI->getKind() == getKindID(); 43292915Sdim } 44292915Sdim}; 45292915Sdim 46292915Sdim} 47292915Sdim 48292915Sdim#endif 49