Create MCTargetOptions.
[oota-llvm.git] / include / llvm / MC / MCTargetOptions.h
1 //===- MCTargetOptions.h - MC Target Options -------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef LLVM_MC_MCTARGETOPTIONS_H
11 #define LLVM_MC_MCTARGETOPTIONS_H
12
13 namespace llvm {
14
15 class MCTargetOptions {
16 public:
17   enum AsmInstrumentation {
18     AsmInstrumentationNone,
19     AsmInstrumentationAddress
20   };
21
22   /// Enables AddressSanitizer instrumentation at machine level.
23   bool SanitizeAddress : 1;
24
25   MCTargetOptions();
26 };
27
28 inline bool operator==(const MCTargetOptions &LHS, const MCTargetOptions &RHS) {
29 #define ARE_EQUAL(X) LHS.X == RHS.X
30   return ARE_EQUAL(SanitizeAddress);
31 #undef ARE_EQUAL
32 }
33
34 inline bool operator!=(const MCTargetOptions &LHS, const MCTargetOptions &RHS) {
35   return !(LHS == RHS);
36 }
37
38 } // end namespace llvm
39
40 #endif