1e5f4a9ffSEmmett Neyman //==-- loop_proto_to_llvm_main.cpp - Driver for protobuf-LLVM conversion----==// 2e5f4a9ffSEmmett Neyman // 3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e5f4a9ffSEmmett Neyman // 7e5f4a9ffSEmmett Neyman //===----------------------------------------------------------------------===// 8e5f4a9ffSEmmett Neyman // 9e5f4a9ffSEmmett Neyman // Implements a simple driver to print a LLVM program from a protobuf with loops 10e5f4a9ffSEmmett Neyman // 11e5f4a9ffSEmmett Neyman //===----------------------------------------------------------------------===// 12e5f4a9ffSEmmett Neyman 13e5f4a9ffSEmmett Neyman 14e5f4a9ffSEmmett Neyman #include <fstream> 15e5f4a9ffSEmmett Neyman #include <iostream> 16e5f4a9ffSEmmett Neyman #include <streambuf> 17e5f4a9ffSEmmett Neyman #include <string> 18e5f4a9ffSEmmett Neyman 19e5f4a9ffSEmmett Neyman #include "loop_proto_to_llvm.h" 20e5f4a9ffSEmmett Neyman main(int argc,char ** argv)21e5f4a9ffSEmmett Neymanint main(int argc, char **argv) { 22e5f4a9ffSEmmett Neyman for (int i = 1; i < argc; i++) { 23e5f4a9ffSEmmett Neyman std::fstream in(argv[i]); 24e5f4a9ffSEmmett Neyman std::string str((std::istreambuf_iterator<char>(in)), 25e5f4a9ffSEmmett Neyman std::istreambuf_iterator<char>()); 26e5f4a9ffSEmmett Neyman std::cout << ";; " << argv[i] << std::endl; 27e5f4a9ffSEmmett Neyman std::cout << clang_fuzzer::LoopProtoToLLVM( 28e5f4a9ffSEmmett Neyman reinterpret_cast<const uint8_t *>(str.data()), str.size()); 29e5f4a9ffSEmmett Neyman } 30e5f4a9ffSEmmett Neyman } 31