Mercurial > hg > CbC > CbC_gcc
view libsanitizer/sanitizer_common/sanitizer_suppressions.h @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 1830386684a0 |
children |
line wrap: on
line source
//===-- sanitizer_suppressions.h --------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // Suppression parsing/matching code. // //===----------------------------------------------------------------------===// #ifndef SANITIZER_SUPPRESSIONS_H #define SANITIZER_SUPPRESSIONS_H #include "sanitizer_common.h" #include "sanitizer_atomic.h" #include "sanitizer_internal_defs.h" namespace __sanitizer { struct Suppression { Suppression() { internal_memset(this, 0, sizeof(*this)); } const char *type; char *templ; atomic_uint32_t hit_count; uptr weight; }; class SuppressionContext { public: // Create new SuppressionContext capable of parsing given suppression types. SuppressionContext(const char *supprression_types[], int suppression_types_num); void ParseFromFile(const char *filename); void Parse(const char *str); bool Match(const char *str, const char *type, Suppression **s); uptr SuppressionCount() const; bool HasSuppressionType(const char *type) const; const Suppression *SuppressionAt(uptr i) const; void GetMatched(InternalMmapVector<Suppression *> *matched); private: static const int kMaxSuppressionTypes = 64; const char **const suppression_types_; const int suppression_types_num_; InternalMmapVector<Suppression> suppressions_; bool has_suppression_type_[kMaxSuppressionTypes]; bool can_parse_; }; } // namespace __sanitizer #endif // SANITIZER_SUPPRESSIONS_H