2
OCaml에 LLVM IR로 컴파일되는 컴파일러를 작성하고 있습니다. 내 컴파일러로 실행LLVM main()의 잘못된 반환 유형이 제공되었습니다.
num main() {
return 0;
}
이, 나는 다음과 LLVM IR 코드를 얻을 :, 내가 말한거야 내가 lli
에 전달하면, 그러나
; ModuleID = 'PixMix'
source_filename = "PixMix"
@fmt = private unnamed_addr constant [4 x i8] c"%d\0A\00"
@fmt.1 = private unnamed_addr constant [4 x i8] c"%s\0A\00"
declare i32 @printf(i8*, ...)
define double @main() {
entry:
ret double 0.000000e+00
}
을 현재의 프로그램은 매우 간단합니다 반환 유형이 유효하지 않습니다. 해당 코드를 보면 main
은 double
으로 정의되어 있으며 double
을 반환합니다. 따라서 lli
이 반환 유형이 엉망이라고 말하는 이유는 무엇입니까?