【问题标题】:Clang LLVM disable va_arg expansionClang LLVM 禁用 va_arg 扩展
【发布时间】:2019-04-16 07:58:39
【问题描述】:

我正在编写一个使用生成的 llvm IR 位代码的 llvm 工具。而对于 va_arg clang 将其扩展为

getelementptr instruction

具有固定位置和内存布局

而不是使用

va_arg instruction

是否有任何编译器标志来禁用此扩展?

【问题讨论】:

    标签: c++ c clang llvm-ir


    【解决方案1】:

    AFAIK,不,因为变量参数处理是特定于平台的。

    此外,我尝试使用来自 LLVM IR 的 VA 指令,但有时会导致错误的机器代码。那里有很多错综复杂的地方,这就是为什么 IR VA 指令将被弃用的原因。

    【讨论】:

    • mg 工具旨在将生成的位码转换为 msil .net,我将为 va_arg .. 提供自定义实现,但我需要在 clang 中禁用 va_arg 扩展
    猜你喜欢
    • 2015-05-15
    • 1970-01-01
    • 2021-01-05
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2013-08-31
    相关资源
    最近更新 更多