2014-09-05 4 views
1

Я скомпилировал программу C++ 11 (test.cpp) в IR-файл LLVM (test.ll), используя clang ++ 3.4. Программа содержит несколько C++ лямбда-функции, и мне было интересно, если это возможно, чтобы извлечь ИК только для функций лямбда с помощью метода, как следующее:LLVM IR Lambda Functions

Module *mod = ParseIRFile("test.ll", *err, ctx); 
for (Module::iterator f = mod->begin(); f != mod->end(); ++f) { 
    //is there some function like isLambdaFunction()? 
    if (f->isLambdaFunction()) { 
     cout << "Lambda Function" << endl; 
    } 
} 

ответ

3

Нет. Там нет понятия лямбда-функций в LLVM ИК. Клэнг опускает лямбды на структуры с помощью методов AFAIK.

Вы можете получить это от AST Clang, но не от LLVM IR.

Смежные вопросы