Coverage Report

Created: 2019-02-23 12:57

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/MC/MCTargetOptions.h
Line
Count
Source (jump to first uncovered line)
1
//===- MCTargetOptions.h - MC Target 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
9
#ifndef LLVM_MC_MCTARGETOPTIONS_H
10
#define LLVM_MC_MCTARGETOPTIONS_H
11
12
#include <string>
13
#include <vector>
14
15
namespace llvm {
16
17
enum class ExceptionHandling {
18
  None,     /// No exception support
19
  DwarfCFI, /// DWARF-like instruction based exceptions
20
  SjLj,     /// setjmp/longjmp based exceptions
21
  ARM,      /// ARM EHABI
22
  WinEH,    /// Windows Exception Handling
23
  Wasm,     /// WebAssembly Exception Handling
24
};
25
26
enum class DebugCompressionType {
27
  None, /// No compression
28
  GNU,  /// zlib-gnu style compression
29
  Z,    /// zlib style complession
30
};
31
32
class StringRef;
33
34
0
class MCTargetOptions {
35
public:
36
  enum AsmInstrumentation {
37
    AsmInstrumentationNone,
38
    AsmInstrumentationAddress
39
  };
40
41
  /// Enables AddressSanitizer instrumentation at machine level.
42
  bool SanitizeAddress : 1;
43
44
  bool MCRelaxAll : 1;
45
  bool MCNoExecStack : 1;
46
  bool MCFatalWarnings : 1;
47
  bool MCNoWarn : 1;
48
  bool MCNoDeprecatedWarn : 1;
49
  bool MCSaveTempLabels : 1;
50
  bool MCUseDwarfDirectory : 1;
51
  bool MCIncrementalLinkerCompatible : 1;
52
  bool MCPIECopyRelocations : 1;
53
  bool ShowMCEncoding : 1;
54
  bool ShowMCInst : 1;
55
  bool AsmVerbose : 1;
56
57
  /// Preserve Comments in Assembly.
58
  bool PreserveAsmComments : 1;
59
60
  int DwarfVersion = 0;
61
62
  std::string ABIName;
63
  std::string SplitDwarfFile;
64
65
  /// Additional paths to search for `.include` directives when using the
66
  /// integrated assembler.
67
  std::vector<std::string> IASSearchPaths;
68
69
  MCTargetOptions();
70
71
  /// getABIName - If this returns a non-empty string this represents the
72
  /// textual name of the ABI that we want the backend to use, e.g. o32, or
73
  /// aapcs-linux.
74
  StringRef getABIName() const;
75
};
76
77
} // end namespace llvm
78
79
#endif // LLVM_MC_MCTARGETOPTIONS_H