llvm-svn: 316358
This commit is contained in:
Mitch Phillips 2017-10-23 18:11:31 +00:00
parent 3cdbebf163
commit 3681e12756
4 changed files with 10 additions and 7 deletions

View File

@ -4,6 +4,7 @@ set(LLVM_LINK_COMPONENTS
AllTargetsDescs
AllTargetsDisassemblers
AllTargetsInfos
CFIVerify
MC
MCParser
Object
@ -11,8 +12,6 @@ set(LLVM_LINK_COMPONENTS
)
add_llvm_tool(llvm-cfi-verify
llvm-cfi-verify.cpp
lib/FileAnalysis.cpp
)
llvm-cfi-verify.cpp)
add_subdirectory(lib)

View File

@ -1,7 +1,9 @@
add_library(LLVMCFIVerify
STATIC
FileAnalysis.cpp
FileAnalysis.h)
FileAnalysis.h
GraphBuilder.cpp
GraphBuilder.h)
llvm_update_compile_flags(LLVMCFIVerify)
llvm_map_components_to_libnames(libs

View File

@ -10,6 +10,7 @@
#ifndef LLVM_CFI_VERIFY_FILE_ANALYSIS_H
#define LLVM_CFI_VERIFY_FILE_ANALYSIS_H
#include "llvm/ADT/DenseMap.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
@ -161,7 +162,7 @@ private:
// Contains a mapping between a specific address, and a list of instructions
// that use this address as a branch target (including call instructions).
std::unordered_map<uint64_t, std::vector<uint64_t>> StaticBranchTargetings;
DenseMap<uint64_t, std::vector<uint64_t>> StaticBranchTargetings;
// A list of addresses of indirect control flow instructions.
std::set<uint64_t> IndirectInstructions;

View File

@ -4,6 +4,7 @@ set(LLVM_LINK_COMPONENTS
AllTargetsDescs
AllTargetsDisassemblers
AllTargetsInfos
CFIVerify
MC
MCParser
Object
@ -13,6 +14,6 @@ set(LLVM_LINK_COMPONENTS
list(FIND LLVM_TARGETS_TO_BUILD "X86" x86_idx)
if (NOT x86_idx LESS 0)
add_llvm_unittest(CFIVerifyTests
FileAnalysis.cpp)
target_link_libraries(CFIVerifyTests LLVMCFIVerify)
FileAnalysis.cpp
GraphBuilder.cpp)
endif()