[LLVMbugs] [Bug 8410] New: Assertion failes in SFINAE expression: Unable to find instantiation of declaration!

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Oct 18 09:24:44 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=8410

           Summary: Assertion failes in SFINAE expression: Unable to find
                    instantiation of declaration!
           Product: clang
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: llvm at r9e.de
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


Created an attachment (id=5634)
 --> (http://llvm.org/bugs/attachment.cgi?id=5634)
Sample code to trigger the error

Compiling the given sample code using a clang build from trunk causes clang to
crash with a failed exception.

I think, that the code is valid, but I am not absolutely sure. gcc does compile
the example.

If I reorder the code a bit and put the definition of Bar above the initial
definition of Foo, clang compiles the code, too.

# clang sample.cpp
clang: SemaTemplateInstantiateDecl.cpp:2752: clang::NamedDecl*
clang::Sema::FindInstantiatedDecl(clang::SourceLocation, clang::NamedDecl*,
const clang::MultiLevelTemplateArgumentList&): Assertion `(Result ||
isa<UsingShadowDecl>(D) || D->isInvalidDecl() ||
cast<Decl>(ParentDC)->isInvalidDecl()) && "Unable to find instantiation of
declaration!"' failed.
0  clang           0x000000000215e289
1  clang           0x000000000215e07c
2  libpthread.so.0 0x00007fcd2d01f8f0
3  libc.so.6       0x00007fcd2c30ea75 gsignal + 53
4  libc.so.6       0x00007fcd2c3125c0 abort + 384
5  libc.so.6       0x00007fcd2c307941 __assert_fail + 241
6  clang           0x00000000013c972a
clang::Sema::FindInstantiatedDecl(clang::SourceLocation, clang::NamedDecl*,
clang::MultiLevelTemplateArgumentList const&) + 1820
7  clang           0x00000000013a1525
8  clang           0x00000000013ab99e
9  clang           0x00000000013a5f81
10 clang           0x00000000013a5844
11 clang           0x00000000013a5982
12 clang           0x00000000013a795d
13 clang           0x00000000013abcf7
14 clang           0x00000000013a5ffb
15 clang           0x00000000013a5844
16 clang           0x00000000013a8371
17 clang           0x00000000013a478f
clang::Sema::Subst(clang::TemplateArgumentLoc const&,
clang::TemplateArgumentLoc&, clang::MultiLevelTemplateArgumentList const&) +
105
18 clang           0x00000000013c68d8
19 clang           0x00000000013c31c0
20 clang           0x00000000013c9ce9
21 clang           0x00000000013c6610 clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&) + 94
22 clang           0x00000000013a3366
clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*,
clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) + 1184
23 clang           0x00000000013a3d18
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) + 1900
24 clang           0x00000000013d3b41
clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType,
clang::PartialDiagnostic const&, std::pair<clang::SourceLocation,
clang::PartialDiagnostic>) + 317
25 clang           0x00000000013d3ef2
clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType,
clang::PartialDiagnostic const&) + 122
26 clang           0x0000000001207599
clang::Sema::RequireCompleteDeclContext(clang::CXXScopeSpec&,
clang::DeclContext*) + 357
27 clang           0x0000000001207df4
clang::Sema::BuildCXXNestedNameSpecifier(clang::Scope*, clang::CXXScopeSpec&,
clang::SourceLocation, clang::SourceLocation, clang::IdentifierInfo&,
clang::QualType, clang::NamedDecl*, bool, bool) + 468
28 clang           0x0000000001208af5
clang::Sema::ActOnCXXNestedNameSpecifier(clang::Scope*, clang::CXXScopeSpec&,
clang::SourceLocation, clang::SourceLocation, clang::IdentifierInfo&,
clang::OpaquePtr<clang::QualType>, bool) + 121
29 clang           0x00000000011d838b
clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&,
clang::OpaquePtr<clang::QualType>, bool, bool*) + 3303
30 clang           0x00000000011b65e8
clang::Parser::TryAnnotateTypeOrScopeToken(bool) + 304
31 clang           0x00000000011bebdd
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext) + 6255
32 clang           0x00000000011cc405
clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier,
clang::Parser::ParsedTemplateInfo const&,
clang::Parser::ParsingDeclRAIIObject*) + 1749
33 clang           0x00000000011cd473
clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, unsigned int,
clang::Decl*) + 1371
34 clang           0x00000000011cb44e
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool) + 5474
35 clang           0x00000000011beac8
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext) + 5978
36 clang           0x00000000011e1612
clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int,
clang::Parser::ParsedTemplateInfo const&,
clang::Parser::ParsingDeclRAIIObject&, clang::SourceLocation&,
clang::AccessSpecifier) + 364
37 clang           0x00000000011e1458
clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier) + 990
38 clang           0x00000000011e0fe3
clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier) + 175
39 clang           0x00000000011bb6eb
clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&,
unsigned int, clang::SourceLocation&, clang::CXX0XAttributeList) + 251
40 clang           0x00000000011b4e8b
clang::Parser::ParseExternalDeclaration(clang::CXX0XAttributeList,
clang::Parser::ParsingDeclSpec*) + 1305
41 clang           0x00000000011b48e3
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 343
42 clang           0x000000000119e4ac clang::ParseAST(clang::Sema&, bool) + 328
43 clang           0x0000000000f15d91 clang::ASTFrontendAction::ExecuteAction()
+ 263
44 clang           0x0000000001039c84 clang::CodeGenAction::ExecuteAction() +
988
45 clang           0x0000000000f159dc clang::FrontendAction::Execute() + 320
46 clang           0x0000000000eff63d
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 751
47 clang           0x0000000000eb27d8
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 856
48 clang           0x0000000000ea5bdf cc1_main(char const**, char const**, char
const*, void*) + 958
49 clang           0x0000000000eae962 main + 499
50 libc.so.6       0x00007fcd2c2f9c4d __libc_start_main + 253
51 clang           0x0000000000ea5299
Stack dump:
0.    Program arguments: clang -cc1 -triple x86_64-unknown-linux-gnu -S
-disable-free -main-file-name sample.cpp -mrelocation-model static
-mdisable-fp-elim -mconstructor-aliases -munwind-tables -target-cpu x86-64
-target-linker-version 2.20.1 -resource-dir
/.../llvm/llvm-trunk-install/lib/clang/2.9 -ferror-limit 19 -fmessage-length
201 -fexceptions -fgnu-runtime -fdiagnostics-show-option -fcolor-diagnostics -o
/tmp/cc-1QusgA.s -x c++ sample.cpp 
1.    sample.cpp:37:39: current parser token 'type'
2.    sample.cpp:35:5: parsing struct/union/class body 'User'
clang: error: clang frontend command failed due to signal 6 (use -v to see
invocation)

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list