在叮当声中init_priority支持

Is init_priority supported in clang

本文关键字:priority 支持 init 叮当声      更新时间:2023-10-16
init_priority

GCC的属性文档中得到了很好的定义,因此代码可以使用该属性来控制全球本地/静态变量的初始化顺序。

在 clang 中,我也看到类似的测试代码,例如 https://github.com/llvm-mirror/clang/blob/master/test/SemaCXX/init-priority-attr.cpp 有类似的代码

Two foo __attribute__((init_priority(101))) ( 5, 6 );

但我在 clang 的属性文档中找不到任何init_priority

所以问题是:

  1. init_priority clang 是否正式支持?
  2. 如果是,这是否意味着文档缺少init_priority内容?

init_priority clang 是否得到官方支持?

是的,clang 编译器支持此属性。

如果是,这是否意味着文档缺少init_priority内容?

这也是正确的。他们错过了记录此属性。(参考: https://github.com/llvm-mirror/clang/blob/802485f170af8d8965817bf0dc3f1336625f3adb/include/clang/Basic/Attr.td#L1922-L1927(