xref: /minix3/external/bsd/llvm/dist/clang/lib/Basic/Sanitizers.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc //===--- Sanitizers.cpp - C Language Family Language Options ----*- C++ -*-===//
2*0a6a1f1dSLionel Sambuc //
3*0a6a1f1dSLionel Sambuc //                     The LLVM Compiler Infrastructure
4*0a6a1f1dSLionel Sambuc //
5*0a6a1f1dSLionel Sambuc // This file is distributed under the University of Illinois Open Source
6*0a6a1f1dSLionel Sambuc // License. See LICENSE.TXT for details.
7*0a6a1f1dSLionel Sambuc //
8*0a6a1f1dSLionel Sambuc //===----------------------------------------------------------------------===//
9*0a6a1f1dSLionel Sambuc //
10*0a6a1f1dSLionel Sambuc //  This file defines the classes from Sanitizers.h
11*0a6a1f1dSLionel Sambuc //
12*0a6a1f1dSLionel Sambuc //===----------------------------------------------------------------------===//
13*0a6a1f1dSLionel Sambuc #include "clang/Basic/Sanitizers.h"
14*0a6a1f1dSLionel Sambuc 
15*0a6a1f1dSLionel Sambuc using namespace clang;
16*0a6a1f1dSLionel Sambuc 
SanitizerSet()17*0a6a1f1dSLionel Sambuc SanitizerSet::SanitizerSet() : Kinds(0) {}
18*0a6a1f1dSLionel Sambuc 
has(SanitizerKind K) const19*0a6a1f1dSLionel Sambuc bool SanitizerSet::has(SanitizerKind K) const {
20*0a6a1f1dSLionel Sambuc   unsigned Bit = static_cast<unsigned>(K);
21*0a6a1f1dSLionel Sambuc   return Kinds & (1 << Bit);
22*0a6a1f1dSLionel Sambuc }
23*0a6a1f1dSLionel Sambuc 
set(SanitizerKind K,bool Value)24*0a6a1f1dSLionel Sambuc void SanitizerSet::set(SanitizerKind K, bool Value) {
25*0a6a1f1dSLionel Sambuc   unsigned Bit = static_cast<unsigned>(K);
26*0a6a1f1dSLionel Sambuc   Kinds = Value ? (Kinds | (1 << Bit)) : (Kinds & ~(1 << Bit));
27*0a6a1f1dSLionel Sambuc }
28*0a6a1f1dSLionel Sambuc 
clear()29*0a6a1f1dSLionel Sambuc void SanitizerSet::clear() {
30*0a6a1f1dSLionel Sambuc   Kinds = 0;
31*0a6a1f1dSLionel Sambuc }
32*0a6a1f1dSLionel Sambuc 
empty() const33*0a6a1f1dSLionel Sambuc bool SanitizerSet::empty() const {
34*0a6a1f1dSLionel Sambuc   return Kinds == 0;
35*0a6a1f1dSLionel Sambuc }
36