Вызов printf
из llvm с целыми числами работает просто отлично, но всегда выдает 0,00000 для чисел с плавающей запятой. Я прочитал следующий пост Printf float с LLVM segfaults , и проблема, похоже, не связана с моим компоновщиком. Вот код для звонка на печать 1.0
; ModuleID = 'top'
source_filename = "top"
@0 = private unnamed_addr constant [6 x i8] c"%.2f\0A\00", align 1
declare i32 @printf(i8*, ...)
define internal i32 @main() {
entrypoint:
%printfCall = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]*
@0, i32 0, i32 0), float 1.000000e+00)
br label %ProgramExit
ProgramExit: ; preds = %entrypoint
ret i32 0
}