1 | //===--------- Definition of the AddressSanitizer options -------*- 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 | // This file defines data types used to set Address Sanitizer options. |
9 | //===----------------------------------------------------------------------===// |
10 | #ifndef LLVM_TRANSFORMS_INSTRUMENTATION_ADDRESSSANITIZEROPTIONS_H |
11 | #define LLVM_TRANSFORMS_INSTRUMENTATION_ADDRESSSANITIZEROPTIONS_H |
12 | |
13 | namespace llvm { |
14 | |
15 | /// Types of ASan module destructors supported |
16 | enum class AsanDtorKind { |
17 | None, ///< Do not emit any destructors for ASan |
18 | Global, ///< Append to llvm.global_dtors |
19 | Invalid, ///< Not a valid destructor Kind. |
20 | }; |
21 | |
22 | /// Types of ASan module constructors supported |
23 | enum class AsanCtorKind { |
24 | None, |
25 | Global |
26 | }; |
27 | |
28 | /// Mode of ASan detect stack use after return |
29 | enum class AsanDetectStackUseAfterReturnMode { |
30 | Never, ///< Never detect stack use after return. |
31 | Runtime, ///< Detect stack use after return if not disabled runtime with |
32 | ///< (ASAN_OPTIONS=detect_stack_use_after_return=0). |
33 | Always, ///< Always detect stack use after return. |
34 | Invalid, ///< Not a valid detect mode. |
35 | }; |
36 | |
37 | } // namespace llvm |
38 | |
39 | #endif |
40 | |