[LLVMbugs] [Bug 8245] New: Assertion failed: Default argument is not yet parsed!

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Sep 27 16:46:56 PDT 2010


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

           Summary: Assertion failed: Default argument is not yet parsed!
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: alexei.svitkine at gmail.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


The following reduced test case raises the assertion:

class class1
{
    template<class C>class class2
    {
        public:
            void foo(bool bar = true);
            int bam;
    };

    class2<int> _foo;
};

Full error:

clang: warning: missing resource library
'/Users/shadowknight/Projects/llvm/Debug+Asserts/lib/clang/2.9/lib/darwin/libclang_rt.eprintf.a',
link may fail
Assertion failed: (!hasUnparsedDefaultArg() && "Default argument is not yet
parsed!"), function getDefaultArg, file Decl.cpp, line 881.
0  clang             0x0119fab6 llvm::SearchForAddressOfSpecialSymbol(char
const*) + 284
1  clang             0x011a00cc llvm::sys::RunInterruptHandlers() + 354
2  libSystem.B.dylib 0x97bb02bb _sigtramp + 43
3  libSystem.B.dylib 0xffffffff _sigtramp + 1749351791
4  clang             0x0119fd63 raise + 27
5  clang             0x0119fd78 abort + 18
6  clang             0x0119fe09 __assert_rtn + 131
7  clang             0x0066d0e0 clang::ParmVarDecl::getDefaultArg() + 88
8  clang             0x0046b673
clang::Sema::SubstParmVarDecl(clang::ParmVarDecl*,
clang::MultiLevelTemplateArgumentList const&) + 455
9  clang             0x0048d778 (anonymous
namespace)::TemplateDeclInstantiator::VisitParmVarDecl(clang::ParmVarDecl*) +
36
10 clang             0x00491f53 (anonymous
namespace)::TemplateDeclInstantiator::SubstFunctionType(clang::FunctionDecl*,
llvm::SmallVectorImpl<clang::ParmVarDecl*>&) + 649
11 clang             0x00492104 (anonymous
namespace)::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*,
clang::TemplateParameterList*) + 362
12 clang             0x0049a034 clang::DeclVisitor<(anonymous
namespace)::TemplateDeclInstantiator, clang::Decl*>::Visit(clang::Decl*) + 1214
13 clang             0x0049500c clang::Sema::SubstDecl(clang::Decl*,
clang::DeclContext*, clang::MultiLevelTemplateArgumentList const&) + 80
14 clang             0x0046a5ea
clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*,
clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) + 1054
15 clang             0x0046b46d
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) + 1511
16 clang             0x0049cb32
clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType,
clang::PartialDiagnostic const&, std::pair<clang::SourceLocation,
clang::PartialDiagnostic>) + 274
17 clang             0x0049cf20
clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType,
unsigned int) + 142
18 clang             0x00321665
clang::Sema::CheckFieldDecl(clang::DeclarationName, clang::QualType,
clang::TypeSourceInfo*, clang::RecordDecl*, clang::SourceLocation, bool,
clang::Expr*, clang::SourceLocation, clang::AccessSpecifier, clang::NamedDecl*,
clang::Declarator*) + 193
19 clang             0x003222a4 clang::Sema::HandleField(clang::Scope*,
clang::RecordDecl*, clang::SourceLocation, clang::Declarator&, clang::Expr*,
clang::AccessSpecifier) + 936
20 clang             0x003517f8
clang::Sema::ActOnCXXMemberDeclarator(clang::Scope*, clang::AccessSpecifier,
clang::Declarator&, clang::ASTMultiPtr<clang::TemplateParameterList*>,
clang::Expr*, clang::Expr*, bool, bool) + 1052
21 clang             0x00287c78
clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier,
clang::Parser::ParsedTemplateInfo const&,
clang::Parser::ParsingDeclRAIIObject*) + 3716
22 clang             0x002887f4
clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, unsigned int,
clang::Decl*) + 1358
23 clang             0x00289d18
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool) + 4900
24 clang             0x0027b973
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext) + 7199
25 clang             0x002b14a1
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsingDeclSpec&,
clang::AttributeList*, clang::AccessSpecifier) + 85
26 clang             0x002b1852
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::AttributeList*,
clang::AccessSpecifier) + 66
27 clang             0x002b278e
clang::Parser::ParseExternalDeclaration(clang::CXX0XAttributeList,
clang::Parser::ParsingDeclSpec*) + 2302
28 clang             0x002b28d6
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 292
29 clang             0x002734ba clang::ParseAST(clang::Sema&, bool) + 290
30 clang             0x00068c1e clang::ASTFrontendAction::ExecuteAction() + 248
31 clang             0x0023751c clang::CodeGenAction::ExecuteAction() + 834
32 clang             0x00068b1f clang::FrontendAction::Execute() + 303
33 clang             0x00048b6d
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 833
34 clang             0x0000c61c
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 776
35 clang             0x00002b95 cc1_main(char const**, char const**, char
const*, void*) + 825
36 clang             0x00009629 main + 495
37 clang             0x00002336 start + 54
Stack dump:
0.    Program arguments:
/Users/shadowknight/Projects/llvm/Debug+Asserts/bin/clang -cc1 -triple
i386-apple-darwin9.0.0 -emit-obj -mrelax-all -disable-free -main-file-name
foo.cpp -pic-level 1 -mdisable-fp-elim -masm-verbose -target-cpu yonah
-target-linker-version 85.2.1 -resource-dir
/Users/shadowknight/Projects/llvm/Debug+Asserts/lib/clang/2.9 -std=gnu++98
-ferror-limit 19 -fmessage-length 236 -fblocks -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -o
/var/folders/9x/9xD+XOQrHRK1RYCybMbWWk+++TI/-Tmp-/cc-LGsTYg.o -x c++ foo.cpp 
1.    foo.cpp:10:18: current parser token ';'
2.    foo.cpp:1:1: parsing struct/union/class body 'class1'
clang: error: clang frontend command failed due to signal 4 (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