Viewing file: sanitizer_suppressions.h (1.69 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
//===-- 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
|