<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Clang crashes on nested class template with member initializer"
   href="http://llvm.org/bugs/show_bug.cgi?id=20497">20497</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Clang crashes on nested class template with member initializer
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>C++11
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>andersca@icloud.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>dgregor@apple.com, llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>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</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>