在以下示例中,clang将相应的变量放入' .aaa'和' .ggg'正确。海湾合作委员会在' .ggg'但不是' .aaa' (类模板的静态成员变量)。
template<int I>
struct s{
__attribute__((section(".aaa"))) static int a[100];
};
__attribute__((section(".ggg"))) int b[100];
template<int I>
__attribute__((section(".aaa"))) int s<I>::a[100];
这是一个GCC错误还是clang的自愿支持?
是否有一个好的工作(除了使s :: a成为全局而非静态成员)?
注意:我遗漏了编译器版本,因为godbolt上的所有GCC版本基本上都是相同的https://godbolt.org/g/E5s0mi
答案 0 :(得分:2)