Created attachment 13498 [details] test case Fuzzing discovered that the attached test case, when given as input to clang -fno-crash-diagnostics -std=c++11 -xc++ -c -emit-llvm causes this assertion failure: clang-3.6: tools/clang/lib/Sema/SemaLookup.cpp:2504: Sema::SpecialMemberOverloadResult *clang::Sema::LookupSpecialMember(clang::CXXRecordDecl *, clang::Sema::CXXSpecialMember, bool, bool, bool, bool, bool): Assertion `!R.empty() && "lookup for a constructor or assignment operator was empty"' failed.
This assertion is triggered by the following well-formed (AFAIK) code (tested on trunk): template<typename Fn> struct fun : Fn { fun() = default; fun(Fn fn) : Fn(fn) {} using Fn::operator(); }; template<typename Fn> fun<Fn> wrap(Fn fn) { return fun<Fn>(fn); } int main() { wrap([](){}); } Bit of a PITA. I haven't found a work-around.
Fixed in r228785.
Eric's rejects-valid with lambdas is fixed, the testcase produced by the fuzzer still fails, and looks like an unrelated error-recovery issue.