llvm вызов printf с плавающей точкой всегда печатает 0,0000 - PullRequest
0 голосов
/ 18 апреля 2020

Вызов 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
}
...