12345678910111213141516171819202122232425262728293031 |
- #include "clang.h"
- #include "clang-c.h"
- #include "llvm/IR/Function.h"
- #include "llvm/IR/LLVMContext.h"
- class perf_clang_scope {
- public:
- explicit perf_clang_scope() {perf_clang__init();}
- ~perf_clang_scope() {perf_clang__cleanup();}
- };
- extern "C" {
- int test__clang_to_IR(void)
- {
- perf_clang_scope _scope;
- std::unique_ptr<llvm::Module> M =
- perf::getModuleFromSource("perf-test.c",
- "int myfunc(void) {return 1;}");
- if (!M)
- return -1;
- for (llvm::Function& F : *M)
- if (F.getName() == "myfunc")
- return 0;
- return -1;
- }
- }
|