0
다음 예제에서 clang은 해당 변수를 '.aaa'및 '.ggg'에 올바르게 넣습니다. GCC는 '.ggg'에서는 작동하지만 'aaa '(클래스 템플릿의 정적 멤버 변수)에서는 작동하지 않습니다.은 템플릿 클래스의 정적 멤버에 대한 __attribute __ ((section (". something")))이 허용됩니까?
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