diff options
Diffstat (limited to 'contrib/llvm-project/compiler-rt/lib/asan/asan_flags.h')
-rw-r--r-- | contrib/llvm-project/compiler-rt/lib/asan/asan_flags.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/contrib/llvm-project/compiler-rt/lib/asan/asan_flags.h b/contrib/llvm-project/compiler-rt/lib/asan/asan_flags.h new file mode 100644 index 000000000000..b55c81f07d4b --- /dev/null +++ b/contrib/llvm-project/compiler-rt/lib/asan/asan_flags.h @@ -0,0 +1,48 @@ +//===-- asan_flags.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 +// +//===----------------------------------------------------------------------===// +// +// This file is a part of AddressSanitizer, an address sanity checker. +// +// ASan runtime flags. +//===----------------------------------------------------------------------===// + +#ifndef ASAN_FLAGS_H +#define ASAN_FLAGS_H + +#include "sanitizer_common/sanitizer_internal_defs.h" +#include "sanitizer_common/sanitizer_flag_parser.h" + +// ASan flag values can be defined in four ways: +// 1) initialized with default values at startup. +// 2) overriden during compilation of ASan runtime by providing +// compile definition ASAN_DEFAULT_OPTIONS. +// 3) overriden from string returned by user-specified function +// __asan_default_options(). +// 4) overriden from env variable ASAN_OPTIONS. +// 5) overriden during ASan activation (for now used on Android only). + +namespace __asan { + +struct Flags { +#define ASAN_FLAG(Type, Name, DefaultValue, Description) Type Name; +#include "asan_flags.inc" +#undef ASAN_FLAG + + void SetDefaults(); +}; + +extern Flags asan_flags_dont_use_directly; +inline Flags *flags() { + return &asan_flags_dont_use_directly; +} + +void InitializeFlags(); + +} // namespace __asan + +#endif // ASAN_FLAGS_H |