lookup-was-empty.cpp:6:1: error: expected ')' } G ^ lookup-was-empty.cpp:5:22: note: to match this '(' C::operator= (C ^ lookup-was-empty.cpp:5:12: error: non-friend class member 'operator=' cannot have a qualified name C::operator= (C ~~~^ lookup-was-empty.cpp:3:11: error: 'C' cannot be defined in the result type of a function class C { ^ lookup-was-empty.cpp:5:24: error: expected ';' at end of declaration list C::operator= (C ^ ; lookup-was-empty.cpp:6:4: error: expected ';' at end of declaration list } G ^ ; lookup-was-empty.cpp:6:4: error: expected '}' lookup-was-empty.cpp:1:7: note: to match this '{' class { ^ clang-3.6: /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaLookup.cpp:2479: 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. #0 0x7f22b44b0130 llvm::sys::PrintStackTrace(_IO_FILE*) /home/sliedes/projects/llvm/llvm.src/lib/Support/Unix/Signals.inc:422:15 #1 0x7f22b44b5ed3 SignalHandler(int) /home/sliedes/projects/llvm/llvm.src/lib/Support/Unix/Signals.inc:198:3 #2 0x7f22b1d72180 (/lib/x86_64-linux-gnu/libc.so.6+0x35180) #3 0x7f22b1d72107 gsignal /build/glibc-NmptCx/glibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0 #4 0x7f22b1d734e8 abort /build/glibc-NmptCx/glibc-2.19/stdlib/abort.c:91:0 #5 0x7f22b1d6b226 __assert_fail_base /build/glibc-NmptCx/glibc-2.19/assert/assert.c:92:0 #6 0x7f22b1d6b2d2 (/lib/x86_64-linux-gnu/libc.so.6+0x2e2d2) #7 0x7f22ad62433f clang::Sema::LookupSpecialMember(clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember, bool, bool, bool, bool, bool) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaLookup.cpp:2478:3 #8 0x7f22acf9c062 llvm::PointerIntPair >::getInt() const /home/sliedes/projects/llvm/llvm.src/include/llvm/ADT/PointerIntPair.h:80:5 #9 0x7f22acf9c062 clang::Sema::SpecialMemberOverloadResult::getKind() const /home/sliedes/projects/llvm/llvm.src/tools/clang/include/clang/Sema/Sema.h:847:0 #10 0x7f22acf9c062 findTrivialSpecialMember(clang::Sema&, clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember, unsigned int, bool, clang::CXXMethodDecl**) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaDeclCXX.cpp:5902:0 #11 0x7f22acf9c062 checkTrivialSubobjectCall(clang::Sema&, clang::SourceLocation, clang::QualType, bool, clang::Sema::CXXSpecialMember, TrivialSubobjectKind, bool) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaDeclCXX.cpp:5959:0 #12 0x7f22acf9e621 checkTrivialClassMembers(clang::Sema&, clang::CXXRecordDecl*, clang::Sema::CXXSpecialMember, bool, bool) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaDeclCXX.cpp:6039:10 #13 0x7f22acf8c201 clang::Sema::SpecialMemberIsTrivial(clang::CXXMethodDecl*, clang::Sema::CXXSpecialMember, bool) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaDeclCXX.cpp:6153:8 #14 0x7f22acfa52ba clang::Sema::DeclareImplicitMoveAssignment(clang::CXXRecordDecl*) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaDeclCXX.cpp:10259:9 #15 0x7f22acfa1653 clang::LazyDefinitionDataPtr::get() /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaDeclCXX.cpp:6411:7 #16 0x7f22acfa1653 clang::CXXRecordDecl::data() const /home/sliedes/projects/llvm/llvm.src/tools/clang/include/clang/AST/DeclCXX.h:591:0 #17 0x7f22acfa1653 clang::CXXRecordDecl::hasUserDeclaredDestructor() const /home/sliedes/projects/llvm/llvm.src/tools/clang/include/clang/AST/DeclCXX.h:1002:0 #18 0x7f22acfa1653 clang::Sema::AddImplicitlyDeclaredMembersToClass(clang::CXXRecordDecl*) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaDeclCXX.cpp:6414:0 #19 0x7f22ace82363 clang::LazyDefinitionDataPtr::get() /home/sliedes/projects/llvm/llvm.src/tools/clang/include/clang/AST/DeclCXX.h:281:21 #20 0x7f22ace82363 clang::CXXRecordDecl::data() const /home/sliedes/projects/llvm/llvm.src/tools/clang/include/clang/AST/DeclCXX.h:591:0 #21 0x7f22ace82363 clang::CXXRecordDecl::getNumVBases() const /home/sliedes/projects/llvm/llvm.src/tools/clang/include/clang/AST/DeclCXX.h:728:0 #22 0x7f22ace82363 clang::Sema::ActOnFields(clang::Scope*, clang::SourceLocation, clang::Decl*, llvm::ArrayRef, clang::SourceLocation, clang::SourceLocation, clang::AttributeList*) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaDecl.cpp:12882:0 #23 0x7f22acfa0803 clang::Sema::ActOnFinishCXXMemberSpecification(clang::Scope*, clang::SourceLocation, clang::Decl*, clang::SourceLocation, clang::SourceLocation, clang::AttributeList*) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Sema/SemaDeclCXX.cpp:6364:25 #24 0x7f22ae0b6b56 clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int, clang::Decl*) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Parse/ParseDeclCXX.cpp:2881:7 #25 0x7f22ae0ad9c6 clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Parse/ParseDeclCXX.cpp:1702:7 #26 0x7f22ae0400b5 clang::ParsedAttributes::empty() const /home/sliedes/projects/llvm/llvm.src/tools/clang/include/clang/Sema/AttributeList.h:677:24 #27 0x7f22ae0400b5 clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Parse/ParseDecl.cpp:3181:0 #28 0x7f22ae223518 clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Parse/Parser.cpp:840:7 #29 0x7f22ae2226ba clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Parse/Parser.cpp:909:12 #30 0x7f22ae21f92b clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Parse/Parser.cpp:637:12 #31 0x7f22ae21c431 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr&) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Parse/Parser.cpp:569:12 #32 0x7f22ae0029cd clang::ParseAST(clang::Sema&, bool, bool) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Parse/ParseAST.cpp:135:7 #33 0x7f22b2d50b81 clang::FrontendAction::Execute() /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Frontend/FrontendAction.cpp:428:8 #34 0x7f22b2ca3488 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/Frontend/CompilerInstance.cpp:804:7 #35 0x7f22b290d2c3 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/sliedes/projects/llvm/llvm.src/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:222:18 #36 0x420258 cc1_main(llvm::ArrayRef, char const*, void*) /home/sliedes/projects/llvm/llvm.src/tools/clang/tools/driver/cc1_main.cpp:110:13 #37 0x419925 ExecuteCC1Tool(llvm::ArrayRef, llvm::StringRef) /home/sliedes/projects/llvm/llvm.src/tools/clang/tools/driver/driver.cpp:369:12 #38 0x419925 main /home/sliedes/projects/llvm/llvm.src/tools/clang/tools/driver/driver.cpp:415:0 #39 0x7f22b1d5eb45 __libc_start_main /build/glibc-NmptCx/glibc-2.19/csu/libc-start.c:321:0 #40 0x40b328 _start (/home/sliedes/local/llvm-trunk-rel/bin/clang-3.6+0x40b328) Stack dump: 0. Program arguments: /home/sliedes/local/llvm-trunk-rel/bin/clang-3.6 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name lookup-was-empty.cpp -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -resource-dir /home/sliedes/local/llvm-trunk-rel/bin/../lib/clang/3.6.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/backward -internal-isystem /usr/local/include -internal-isystem /home/sliedes/local/llvm-trunk-rel/bin/../lib/clang/3.6.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /home/sliedes/t/clang/bug/min -ferror-limit 19 -fmessage-length 0 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -o /tmp/lookup-was-empty-815359.o -x c++ lookup-was-empty.cpp 1. parser at end of file 2. lookup-was-empty.cpp:1:1: parsing struct/union/class body clang-3.6: error: unable to execute command: Aborted clang-3.6: error: clang frontend command failed due to signal (use -v to see invocation)