LLVM | Codegen для функции ввода программы с параметрами командной строки - PullRequest
1 голос
/ 07 февраля 2020

Для моего языка программирования запись программы похожа на C / C ++ main function:

int main(int argc, char **argv) {
    return 0
}

Предположим:

  • ИК код для main генерируется в llvm::Function с использованием llvm::IRBuilder
  • У меня есть llvm::LLVMContext и llvm::Module создано

Вопрос:

Если я хочу скомпилировать этот код в двоичный файл prog, как использовать llvm для генерации части, которая передает аргументы командной строки в argc и argv, а затем вызвать main, которые предоставляются по пользователям при запуске prog?

1 Ответ

0 голосов
/ 09 февраля 2020

Благодаря комментарию arnt:

Если эта функция на самом деле называется main () и на самом деле имеет эти аргументы, то она должна просто работать. Если это не так, то вам нужно сгенерировать функцию моста, которая на самом деле называется main () и вызывает функцию, которую вы хотите вызвать, так, как вы хотите, чтобы она была вызвана. - arnt

Работает!

...