https://llvm.org/bugs/show_bug.cgi?id=27173
Bug ID: 27173 Summary: Infinite recursion during template instantiation Product: clang Version: trunk Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: Frontend Assignee: unassignedclangb...@nondot.org Reporter: rtr...@google.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified $ cat bind.cc template <typename _Tp> _Tp declval(); template <typename _Signature> struct _Bind; template <typename _Functor, typename T> struct _Bind<_Functor(T)> { template <typename Arg, typename _Result = decltype( declval<_Functor>()(declval<volatile T>()))> void operator()(Arg&& arg) {} }; template <typename _Func, typename _Arg> inline _Bind<_Func(_Arg)> bind(_Func&& __f, _Arg&& __args) {} struct A { template <typename T> A(T t); }; template <typename T> struct B { B(T&& arg); }; template <typename T> B<T> get_B(); void g(A a) {} void test() { bind(g, get_B<A>()); } $ clang -cc1 -std=c++11 bind.cc Segmentation fault (core dumped) >From the backtrace, these 4 functions are repeated: clang::Sema::PerformCopyInitialization clang::Sema::GatherArgumentsForCall clang::Sema::CompleteConstructorCall clang::InitializationSequence::Perform -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs