0

我有一个看起来像这样的 LLVM IR 代码:

declare i32 @snprintf(i8*, i32, i8*, ...)

define i32 @main () {
    ...
    %9 = load i8*, i8** %8
    %10 = load i8*, i8** %2
    %11 = load i8*, i8** %0
    %12 = load i8, i8* %11
    %13 = call i32 (i8*, i32, i8*, ...)* @snprintf(i8* %10, i32 3, i8* %9, i8 %12)
    ...

最后一行提出了这一点:

error: '@snprintf' defined with type 'i32 (i8*, i32, i8*, ...)*'
%13 = call i32 (i8*, i32, i8*, ...)* @snprintf(i8* %10, i32 3, i8* %9, i8 %12)

我研究了 LLVM 文档,但我不知道出了什么问题。:-(

提前致谢!

4

1 回答 1

0

我解决了这个问题。刚刚删除了*调用后类型的括号:

%13 = call i32 (i8*, i32, i8*, ...) @snprintf(i8* %10, i32 3, i8* %9, i8 %12)

于 2021-12-28T22:07:05.787 回答