Line data Source code
1 : //===-- WinCFGuard.h - Windows Control Flow Guard Handling ----*- 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 : // This file contains support for writing windows exception info into asm files.
11 : //
12 : //===----------------------------------------------------------------------===//
13 :
14 : #ifndef LLVM_LIB_CODEGEN_ASMPRINTER_WINCFGUARD_H
15 : #define LLVM_LIB_CODEGEN_ASMPRINTER_WINCFGUARD_H
16 :
17 : #include "AsmPrinterHandler.h"
18 : #include "llvm/Support/Compiler.h"
19 :
20 : namespace llvm {
21 :
22 : class LLVM_LIBRARY_VISIBILITY WinCFGuard : public AsmPrinterHandler {
23 : /// Target of directive emission.
24 : AsmPrinter *Asm;
25 :
26 : public:
27 : WinCFGuard(AsmPrinter *A);
28 : ~WinCFGuard() override;
29 :
30 13 : void setSymbolSize(const MCSymbol *Sym, uint64_t Size) override {}
31 :
32 : /// Emit the Control Flow Guard function ID table
33 : void endModule() override;
34 :
35 : /// Gather pre-function debug information.
36 : /// Every beginFunction(MF) call should be followed by an endFunction(MF)
37 : /// call.
38 7 : void beginFunction(const MachineFunction *MF) override {}
39 :
40 : /// Gather post-function debug information.
41 : /// Please note that some AsmPrinter implementations may not call
42 : /// beginFunction at all.
43 7 : void endFunction(const MachineFunction *MF) override {}
44 :
45 : /// Process beginning of an instruction.
46 0 : void beginInstruction(const MachineInstr *MI) override {}
47 :
48 : /// Process end of an instruction.
49 0 : void endInstruction() override {}
50 : };
51 :
52 : } // namespace llvm
53 :
54 : #endif
|