You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
34 lines
1.0 KiB
#include <Windows.h>
|
|
|
|
#include "llvm/IR/BasicBlock.h"
|
|
#include "llvm/IR/Constants.h"
|
|
#include "llvm/IR/DerivedTypes.h"
|
|
#include "llvm/IR/Function.h"
|
|
#include "llvm/IR/IRBuilder.h"
|
|
#include "llvm/IR/IRPrintingPasses.h"
|
|
#include "llvm/IR/LLVMContext.h"
|
|
#include "llvm/IR/Module.h"
|
|
#include "llvm/IR/PassManager.h"
|
|
#include "llvm/IR/Type.h"
|
|
#include "llvm/IR/Verifier.h"
|
|
#include "llvm/Pass.h"
|
|
#include "llvm/Support/raw_ostream.h"
|
|
|
|
using namespace llvm;
|
|
|
|
int main( int argc, char **argv )
|
|
{
|
|
// test for now...
|
|
LLVMContext llvm_ctx;
|
|
Module llvm_module( "VMProtect 2 Static Devirtualizer", llvm_ctx );
|
|
IRBuilder<> ir_builder( llvm_ctx );
|
|
|
|
FunctionType *FT = FunctionType::get( Type::getVoidTy( llvm_ctx ), false );
|
|
Function *F = Function::Create( FT, Function::ExternalLinkage, "test_func", llvm_module );
|
|
F->setCallingConv( CallingConv::C );
|
|
|
|
auto basic_block = BasicBlock::Create( llvm_ctx, "test", F );
|
|
ir_builder.SetInsertPoint( basic_block );
|
|
ir_builder.CreateRetVoid();
|
|
basic_block->print( outs() );
|
|
} |