【问题标题】:LLVM 10.0.1 - How to set the alignment of the global variable?LLVM 10.0.1 - 如何设置全局变量的对齐方式?
【发布时间】:2020-11-25 23:45:15
【问题描述】:

我正在尝试使用 llvm::GlobalVariable 中的 setAlignment 方法设置全局变量的对齐方式。但是,此成员函数在 LLVM 10.0.1 中报告为“已弃用”。设置对齐方式的推荐方法是什么?

【问题讨论】:

  • 已弃用?我没有看到in the source code。通常,当某些东西被弃用时,提交消息会说明为什么以及要做什么。有时一个善良的灵魂甚至会添加评论,但不是很常见。另一方面,提交日志是可靠的,git blame 是一种快速查找的方法。
  • 以下是我收到的警告信息:41 | gVar->setAlignment(4); | ^ 在 /usr/local/include/llvm/Support/ErrorHandling.h:17, ..../usr/local/include/llvm/IR/GlobalObject.h:81:34 中包含的文件中:注意:此处声明 81 | LLVM_ATTRIBUTE_DEPRECATED(void setAlignment(unsigned Align), | ^~~~~~~~~~~~ /usr/local/include/llvm/Support/Compiler.h:305:3: 注意:在宏“LLVM_ATTRIBUTE_DEPRECATED”的定义中305 | decl __attribute__((不推荐))
  • 相邻行说明了使用什么。函数was removed in April 2020顺便说一句。

标签: llvm llvm-ir


【解决方案1】:

修复相对简单。 MayBeAlign 解决了 Deprecated 警告。

gvar->setAlignment(**MaybeAlign(16)**);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 2018-08-02
    相关资源
    最近更新 更多