[LLVMbugs] [Bug 20497] New: Clang crashes on nested class template with member initializer

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Jul 30 16:41:49 PDT 2014


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

            Bug ID: 20497
           Summary: Clang crashes on nested class template with member
                    initializer
           Product: clang
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++11
          Assignee: unassignedclangbugs at nondot.org
          Reporter: andersca at icloud.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

struct A { template<int s> struct B { B() {} unsigned f = 1; }; B<1> b; } a;

Assertion failed: (Val && "isa<> used on a null pointer"), function doit, file
/Volumes/Data/Source/llvm/include/llvm/Support/Casting.h, line 95.
0  clang                    0x000000010990e94e
llvm::sys::PrintStackTrace(__sFILE*) + 46
1  clang                    0x000000010990ec5b
PrintStackTraceSignalHandler(void*) + 27
2  clang                    0x000000010990efec SignalHandler(int) + 412
3  libsystem_platform.dylib 0x00007fff87bdef1a _sigtramp + 26
4  libsystem_platform.dylib 0x0000000000000002 _sigtramp + 2017595650
5  clang                    0x000000010990ec8b raise + 27
6  clang                    0x000000010990ed42 abort + 18
7  clang                    0x000000010990ed21 __assert_rtn + 129
8  clang                    0x00000001076ce101
llvm::isa_impl_cl<clang::BinaryOperator, clang::Stmt const*>::doit(clang::Stmt
const*) + 97
9  clang                    0x00000001076ce088
llvm::isa_impl_wrap<clang::BinaryOperator, clang::Stmt const*, clang::Stmt
const*>::doit(clang::Stmt const* const&) + 24
10 clang                    0x00000001076ce062
llvm::isa_impl_wrap<clang::BinaryOperator, clang::Stmt* const, clang::Stmt
const*>::doit(clang::Stmt* const&) + 34
11 clang                    0x00000001076cdf95 bool
llvm::isa<clang::BinaryOperator, clang::Stmt*>(clang::Stmt* const&) + 21
12 clang                    0x00000001076bcf28
llvm::cast_retty<clang::BinaryOperator, clang::Stmt*>::ret_type
llvm::dyn_cast<clang::BinaryOperator, clang::Stmt>(clang::Stmt*) + 24
13 clang                    0x0000000105f7ff44
clang::StmtVisitorBase<clang::make_ptr, (anonymous
namespace)::ScalarExprEmitter, llvm::Value*>::Visit(clang::Stmt*) + 36
14 clang                    0x0000000105f75d08 (anonymous
namespace)::ScalarExprEmitter::Visit(clang::Expr*) + 40
15 clang                    0x0000000105f852d7 (anonymous
namespace)::ScalarExprEmitter::VisitCXXDefaultInitExpr(clang::CXXDefaultInitExpr*)
+ 71
16 clang                    0x0000000105f80860
clang::StmtVisitorBase<clang::make_ptr, (anonymous
namespace)::ScalarExprEmitter, llvm::Value*>::Visit(clang::Stmt*) + 2368
17 clang                    0x0000000105f75d08 (anonymous
namespace)::ScalarExprEmitter::Visit(clang::Expr*) + 40
18 clang                    0x0000000105f75c72
clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) + 226
19 clang                    0x0000000105f10aa1
clang::CodeGen::CodeGenFunction::EmitScalarInit(clang::Expr const*,
clang::ValueDecl const*, clang::CodeGen::LValue, bool) + 97
20 clang                    0x0000000105f13880
clang::CodeGen::CodeGenFunction::EmitExprAsInit(clang::Expr const*,
clang::ValueDecl const*, clang::CodeGen::LValue, bool) + 544
21 clang                    0x0000000105ed3d5e
clang::CodeGen::CodeGenFunction::EmitInitializerForField(clang::FieldDecl*,
clang::CodeGen::LValue, clang::Expr*, llvm::ArrayRef<clang::VarDecl*>) + 302
22 clang                    0x0000000105edcd6c
EmitMemberInitializer(clang::CodeGen::CodeGenFunction&, clang::CXXRecordDecl
const*, clang::CXXCtorInitializer*, clang::CXXConstructorDecl const*,
clang::CodeGen::FunctionArgList&) + 1900
23 clang                    0x0000000105ed62b8 (anonymous
namespace)::ConstructorMemcpyizer::addMemberInitializer(clang::CXXCtorInitializer*)
+ 184
24 clang                    0x0000000105ed5bbd
clang::CodeGen::CodeGenFunction::EmitCtorPrologue(clang::CXXConstructorDecl
const*, clang::CXXCtorType, clang::CodeGen::FunctionArgList&) + 1181
25 clang                    0x0000000105ed507a
clang::CodeGen::CodeGenFunction::EmitConstructorBody(clang::CodeGen::FunctionArgList&)
+ 698
26 clang                    0x000000010604fe7a
clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl,
llvm::Function*, clang::CodeGen::CGFunctionInfo const&) + 1242
27 clang                    0x0000000105eb5f5d
clang::CodeGen::CodeGenModule::EmitCXXConstructor(clang::CXXConstructorDecl
const*, clang::CXXCtorType) + 541
28 clang                    0x0000000106060f52
clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl,
llvm::GlobalValue*) + 306
29 clang                    0x000000010605c4c4
clang::CodeGen::CodeGenModule::EmitDeferred() + 756
30 clang                    0x000000010605bbdf
clang::CodeGen::CodeGenModule::Release() + 31
31 clang                    0x0000000106148482 (anonymous
namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) + 482
32 clang                    0x0000000106048b47
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 199
33 clang                    0x0000000106174504 clang::ParseAST(clang::Sema&,
bool, bool) + 1268
34 clang                    0x0000000105bb52da
clang::ASTFrontendAction::ExecuteAction() + 522
35 clang                    0x000000010604774f
clang::CodeGenAction::ExecuteAction() + 3391
36 clang                    0x0000000105bb4d48 clang::FrontendAction::Execute()
+ 120
37 clang                    0x0000000105b4da74
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 996
38 clang                    0x0000000105a812f0
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3200
39 clang                    0x0000000105a63bba cc1_main(char const**, char
const**, char const*, void*) + 2458
40 clang                    0x0000000105a7717a main + 858
41 libdyld.dylib            0x00007fff8b1365c9 start + 1
42 libdyld.dylib            0x0000000000000007 start + 1961663039

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140730/bd275a18/attachment.html>


More information about the llvm-bugs mailing list