#include <stdio.h>
int main() {
printf("hello world\n");
return 0;
}
Я просто написал простой hello.c
.Создание LLVM IR с использованием clang
Когда я набираю в
$ clang -O3 -emit-llvm hello.c -c -o hello.bc
и $ lli hello.bc
в терминале он работает хорошо.
НО, когда я набираю в
$ clang -O3 -emit-llvm hello.c -S -o hello.ll
и lli hello.ll
.
ошибка происходит, показывая, что ошибка найдена в строке 21:
!0 = metadata !{metadata !"Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)"}
Он работает после того, как удалить эти 2 metadata
. ЗАЧЕМ?
Это проблема clang или LLVM?
Информация о моей версии LLVM:
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix
// все команды, которые я использую выше приходят из http://llvm.org/docs/CommandGuide/index.html
Спасибо, я думаю, это ошибка. – Wentao
@ Rahn Я также могу подтвердить, что ваш код работает нормально, используя ваши инструкции, когда я получаю свой llvm/clang с https://github.com/evhan55/emsdk_portable PS. что репо кажется более последовательным выпуском llvm/clang ... он дает вам \t clang --version \t clang version 3.3 –