Я пишу компилятор, который использует LLVM в качестве бэкэнд, а мой компилятор генерирует следующий код сборки LLVM
@0 = private constant [25 x i8] c"Hello World to %dntegers\00"
declare void @printf (i8*, i32)
define void @main () {
%1 = getelementptr [25 x i8]* @0, i32 0, i32 0
%2 = 1
tail call void @printf(i8* %1, i32 %2)
ret void
}
Но я получаю следующую ошибку:
c.ll:8:8: error: expected instruction opcode
%2 = 1
^
Документация показывает такие примеры.
Вы знаете, как заставить это работать? В настоящее время я использую вместо этого:
%2 = add i32 0, 1 ; FIXME