[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