|
11 | 11 | // |
12 | 12 | //===----------------------------------------------------------------------===// |
13 | 13 |
|
14 | | -#include "llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h" |
| 14 | +#include "llvm/CodeGen/SanitizerBinaryMetadata.h" |
15 | 15 | #include "llvm/CodeGen/MachineFrameInfo.h" |
16 | 16 | #include "llvm/CodeGen/MachineFunction.h" |
17 | 17 | #include "llvm/CodeGen/MachineFunctionPass.h" |
|
20 | 20 | #include "llvm/IR/MDBuilder.h" |
21 | 21 | #include "llvm/InitializePasses.h" |
22 | 22 | #include "llvm/Pass.h" |
| 23 | +#include "llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h" |
23 | 24 | #include <algorithm> |
24 | 25 |
|
25 | 26 | using namespace llvm; |
26 | 27 |
|
27 | 28 | namespace { |
28 | | -class MachineSanitizerBinaryMetadata : public MachineFunctionPass { |
| 29 | +class MachineSanitizerBinaryMetadataLegacy : public MachineFunctionPass { |
29 | 30 | public: |
30 | 31 | static char ID; |
31 | 32 |
|
32 | | - MachineSanitizerBinaryMetadata(); |
| 33 | + MachineSanitizerBinaryMetadataLegacy(); |
33 | 34 | bool runOnMachineFunction(MachineFunction &F) override; |
34 | 35 | }; |
| 36 | + |
| 37 | +struct MachineSanitizerBinaryMetadata { |
| 38 | + bool run(MachineFunction &MF); |
| 39 | +}; |
| 40 | + |
35 | 41 | } // namespace |
36 | 42 |
|
37 | | -INITIALIZE_PASS(MachineSanitizerBinaryMetadata, "machine-sanmd", |
| 43 | +INITIALIZE_PASS(MachineSanitizerBinaryMetadataLegacy, "machine-sanmd", |
38 | 44 | "Machine Sanitizer Binary Metadata", false, false) |
39 | 45 |
|
40 | | -char MachineSanitizerBinaryMetadata::ID = 0; |
| 46 | +char MachineSanitizerBinaryMetadataLegacy::ID = 0; |
41 | 47 | char &llvm::MachineSanitizerBinaryMetadataID = |
42 | | - MachineSanitizerBinaryMetadata::ID; |
| 48 | + MachineSanitizerBinaryMetadataLegacy::ID; |
43 | 49 |
|
44 | | -MachineSanitizerBinaryMetadata::MachineSanitizerBinaryMetadata() |
| 50 | +MachineSanitizerBinaryMetadataLegacy::MachineSanitizerBinaryMetadataLegacy() |
45 | 51 | : MachineFunctionPass(ID) { |
46 | | - initializeMachineSanitizerBinaryMetadataPass( |
| 52 | + initializeMachineSanitizerBinaryMetadataLegacyPass( |
47 | 53 | *PassRegistry::getPassRegistry()); |
48 | 54 | } |
49 | 55 |
|
50 | | -bool MachineSanitizerBinaryMetadata::runOnMachineFunction(MachineFunction &MF) { |
| 56 | +bool MachineSanitizerBinaryMetadataLegacy::runOnMachineFunction( |
| 57 | + MachineFunction &MF) { |
| 58 | + return MachineSanitizerBinaryMetadata().run(MF); |
| 59 | +} |
| 60 | + |
| 61 | +PreservedAnalyses |
| 62 | +MachineSanitizerBinaryMetadataPass::run(MachineFunction &MF, |
| 63 | + MachineFunctionAnalysisManager &MFAM) { |
| 64 | + if (!MachineSanitizerBinaryMetadata().run(MF)) |
| 65 | + return PreservedAnalyses::all(); |
| 66 | + return getMachineFunctionPassPreservedAnalyses(); |
| 67 | +} |
| 68 | + |
| 69 | +bool MachineSanitizerBinaryMetadata::run(MachineFunction &MF) { |
51 | 70 | MDNode *MD = MF.getFunction().getMetadata(LLVMContext::MD_pcsections); |
52 | 71 | if (!MD) |
53 | 72 | return false; |
|
0 commit comments