[llvm-bugs] [Bug 27173] New: Infinite recursion during template instantiation
via llvm-bugs
llvm-bugs at lists.llvm.org
Thu Mar 31 21:08:11 PDT 2016
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: unassignedclangbugs at nondot.org
Reporter: rtrieu at google.com
CC: llvm-bugs at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160401/2602813d/attachment-0001.html>
More information about the llvm-bugs
mailing list