1 //===--- CheckerOptInfo.h - Specifies which checkers to use -----*- 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_STATICANALYZER_CORE_CHECKEROPTINFO_H 11 #define LLVM_CLANG_STATICANALYZER_CORE_CHECKEROPTINFO_H 12 13 #include "clang/Basic/LLVM.h" 14 #include "llvm/ADT/StringRef.h" 15 16 namespace clang { 17 namespace ento { 18 19 /// Represents a request to include or exclude a checker or package from a 20 /// specific analysis run. 21 /// 22 /// \sa CheckerRegistry::initializeManager 23 class CheckerOptInfo { 24 StringRef Name; 25 bool Enable; 26 bool Claimed; 27 28 public: CheckerOptInfo(StringRef name,bool enable)29 CheckerOptInfo(StringRef name, bool enable) 30 : Name(name), Enable(enable), Claimed(false) { } 31 getName()32 StringRef getName() const { return Name; } isEnabled()33 bool isEnabled() const { return Enable; } isDisabled()34 bool isDisabled() const { return !isEnabled(); } 35 isClaimed()36 bool isClaimed() const { return Claimed; } isUnclaimed()37 bool isUnclaimed() const { return !isClaimed(); } claim()38 void claim() { Claimed = true; } 39 }; 40 41 } // end namespace ento 42 } // end namespace clang 43 44 #endif 45