1 1.1 kamil //===-- ubsan_flags.h -------------------------------------------*- C++ -*-===// 2 1.1 kamil // 3 1.1 kamil // The LLVM Compiler Infrastructure 4 1.1 kamil // 5 1.1 kamil // This file is distributed under the University of Illinois Open Source 6 1.1 kamil // License. See LICENSE.TXT for details. 7 1.1 kamil // 8 1.1 kamil //===----------------------------------------------------------------------===// 9 1.1 kamil // 10 1.1 kamil // Runtime flags for UndefinedBehaviorSanitizer. 11 1.1 kamil // 12 1.1 kamil //===----------------------------------------------------------------------===// 13 1.1 kamil #ifndef UBSAN_FLAGS_H 14 1.1 kamil #define UBSAN_FLAGS_H 15 1.1 kamil 16 1.1 kamil #include "sanitizer_common/sanitizer_internal_defs.h" 17 1.1 kamil 18 1.1 kamil namespace __sanitizer { 19 1.1 kamil class FlagParser; 20 1.1 kamil } 21 1.1 kamil 22 1.1 kamil namespace __ubsan { 23 1.1 kamil 24 1.1 kamil struct Flags { 25 1.1 kamil #define UBSAN_FLAG(Type, Name, DefaultValue, Description) Type Name; 26 1.1 kamil #include "ubsan_flags.inc" 27 1.1 kamil #undef UBSAN_FLAG 28 1.1 kamil 29 1.1 kamil void SetDefaults(); 30 1.1 kamil }; 31 1.1 kamil 32 1.1 kamil extern Flags ubsan_flags; 33 1.1 kamil inline Flags *flags() { return &ubsan_flags; } 34 1.1 kamil 35 1.1 kamil void InitializeFlags(); 36 1.1 kamil void RegisterUbsanFlags(FlagParser *parser, Flags *f); 37 1.1 kamil 38 1.1 kamil const char *MaybeCallUbsanDefaultOptions(); 39 1.1 kamil 40 1.1 kamil } // namespace __ubsan 41 1.1 kamil 42 1.1 kamil extern "C" { 43 1.1 kamil // Users may provide their own implementation of __ubsan_default_options to 44 1.1 kamil // override the default flag values. 45 1.1 kamil SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE 46 1.1 kamil const char *__ubsan_default_options(); 47 1.1 kamil } // extern "C" 48 1.1 kamil 49 1.1 kamil #endif // UBSAN_FLAGS_H 50