Skip to content

Commit

Permalink
fixup! fix issues related to file entry ref
Browse files Browse the repository at this point in the history
  • Loading branch information
kumarak committed Nov 17, 2024
1 parent 7369f25 commit 9c938d2
Showing 1 changed file with 11 additions and 45 deletions.
56 changes: 11 additions & 45 deletions tools/pcode-lifter/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,32 +48,6 @@ const llvm::cl::opt< std::string > output_filename(
llvm::cl::init("/tmp/output.c") // Default value
);

clang::ASTContext &create_ast_context(void) {
clang::CompilerInstance compiler;

compiler.createDiagnostics();
if (!compiler.hasDiagnostics()) {
llvm::errs() << "Failed to initialize diagnostics.\n";
}

std::shared_ptr< clang::TargetOptions > target_options =
std::make_shared< clang::TargetOptions >();
target_options->Triple = llvm::sys::getDefaultTargetTriple();
compiler.setTarget(
clang::TargetInfo::CreateTargetInfo(compiler.getDiagnostics(), target_options)
);

// Set up file manager and source manager
compiler.createFileManager();
compiler.createSourceManager(compiler.getFileManager());

// Create the preprocessor and AST context
compiler.createPreprocessor(clang::TU_Complete);
compiler.createASTContext();

return compiler.getASTContext();
}

int main(int argc, char **argv) {
llvm::cl::ParseCommandLineOptions(
argc, argv, "pcode-lifter to lift high pcode into clang ast\n"
Expand Down Expand Up @@ -111,36 +85,28 @@ int main(int argc, char **argv) {
return EXIT_FAILURE;
}

clang::CompilerInvocation &invocation = ci.getInvocation();
clang::TargetOptions &invocation_target_opts = invocation.getTargetOpts();

invocation_target_opts.Triple = llvm::sys::getDefaultTargetTriple();
clang::CompilerInvocation &invocation = ci.getInvocation();
clang::TargetOptions &inv_target_opts = invocation.getTargetOpts();
inv_target_opts.Triple = llvm::sys::getDefaultTargetTriple();

std::shared_ptr< clang::TargetOptions > target_options =
std::make_shared< clang::TargetOptions >();
target_options->Triple = llvm::sys::getDefaultTargetTriple();
ci.setTarget(clang::TargetInfo::CreateTargetInfo(ci.getDiagnostics(), target_options));

ci.getPreprocessorOpts().addRemappedFile(
"dummy.cpp", llvm::MemoryBuffer::getMemBuffer("").release()
);
ci.getFrontendOpts().Inputs.push_back(
clang::FrontendInputFile("dummy.cpp", clang::Language::C)
);

ci.getFrontendOpts().ProgramAction = clang::frontend::ParseSyntaxOnly;

ci.getLangOpts().C99 = true;
ci.getLangOpts().C99 = true;
// Setup file manager and source manager
ci.createFileManager();
ci.createSourceManager(ci.getFileManager());

auto &sm = ci.getSourceManager();

std::unique_ptr< llvm::MemoryBuffer > filebuffer =
llvm::MemoryBuffer::getMemBuffer("// patchestry content\n");

clang::FileID file_id = sm.createFileID(std::move(filebuffer), clang::SrcMgr::C_User);
auto &sm = ci.getSourceManager();
std::string file_data = "/patchestry";
llvm::ErrorOr< clang::FileEntryRef > file_entry_ref_or_err =
ci.getFileManager().getVirtualFileRef("/tmp/patchestry", file_data.size(), 0);
clang::FileID file_id = sm.createFileID(
*file_entry_ref_or_err, clang::SourceLocation(), clang::SrcMgr::C_User, 0
);

sm.setMainFileID(file_id);

Expand Down

0 comments on commit 9c938d2

Please sign in to comment.