Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/compiler-rt/lib/ubsan/ubsan_flags.h
35233 views
1
//===-- ubsan_flags.h -------------------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// Runtime flags for UndefinedBehaviorSanitizer.
10
//
11
//===----------------------------------------------------------------------===//
12
#ifndef UBSAN_FLAGS_H
13
#define UBSAN_FLAGS_H
14
15
#include "sanitizer_common/sanitizer_internal_defs.h"
16
17
namespace __sanitizer {
18
class FlagParser;
19
}
20
21
namespace __ubsan {
22
23
struct Flags {
24
#define UBSAN_FLAG(Type, Name, DefaultValue, Description) Type Name;
25
#include "ubsan_flags.inc"
26
#undef UBSAN_FLAG
27
28
void SetDefaults();
29
};
30
31
extern Flags ubsan_flags;
32
inline Flags *flags() { return &ubsan_flags; }
33
34
void InitializeFlags();
35
void RegisterUbsanFlags(FlagParser *parser, Flags *f);
36
37
} // namespace __ubsan
38
39
extern "C" {
40
// Users may provide their own implementation of __ubsan_default_options to
41
// override the default flag values.
42
SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE
43
const char *__ubsan_default_options();
44
} // extern "C"
45
46
#endif // UBSAN_FLAGS_H
47
48