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
13namespace llvm {
14
15/// Types of ASan module destructors supported
16enum 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
23enum class AsanCtorKind {
24 None,
25 Global
26};
27
28/// Mode of ASan detect stack use after return
29enum 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

source code of include/llvm-17/llvm/Transforms/Instrumentation/AddressSanitizerOptions.h