Experimental Clang Binaries for Mingw32/x86 でコンパイラが死んだ\(^o^)/
[再現コード]
template<typename T, int N> struct array{ T elems[ N ]; }; template<typename T, typename ...Args> array<T, sizeof...(Args)> make_array(Args... args){ return {{ args... }}; } int main(){ make_array<int>(1, 2, 3, 4); return 0; }
[コンパイル出力]
Assertion failed: isa<LabelDecl>(D) && "declaration not instantiated in this scope", file /Users/asl/Projects/llvm/release/3.1/src/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp, line 2555 This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. clang++: error: clang frontend command failed with exit code 3 (use -v to see invocation)
\(^o^)/
ちなみに clang_complete を使用している場合は、これが書かれているファイルを読み込んだら死にます。
どうやら array
次のコードだと問題なく動作しますね。
template<typename T, int N> struct array{ T elems[ N ]; }; template<typename T, typename ...Args, int N = sizeof...(Args)> array<T, N> make_array(Args... args){ return {{ args... }}; } int main(){ make_array<int>(1, 2, 3, 4); return 0; }
これ、自前で LLVM 3.1 のソースからビルドした場合はどうなるんだろうか。
あと LLVM 3.2(trunk) だと両方とも問題なくコンパイルすることが出来ました。
ぐぬぬ…。