<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 --- - PointerUnion.h:129 Assertion `is<T>() && "Invalid accessor called"' failed"
   href="http://llvm.org/bugs/show_bug.cgi?id=16134">16134</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>PointerUnion.h:129 Assertion `is<T>() && "Invalid accessor called"' failed
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

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

        <tr>
          <th>OS</th>
          <td>Linux
          </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++
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>aedla@google.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>This invalid code hits an assertion:

template <class P> struct S
template <> static S<Q>::f()

clang:
/usr/local/google/chrome/src/third_party/llvm/include/llvm/ADT/PointerUnion.h:129:
T llvm::PointerUnion<llvm::PointerUnion<clang::FunctionTemplateDecl *,
clang::MemberSpecializationInfo *>,
llvm::PointerUnion<clang::FunctionTemplateSpecializationInfo *,
clang::DependentFunctionTemplateSpecializationInfo *> >::get() const [PT1 =
llvm::PointerUnion<clang::FunctionTemplateDecl *,
clang::MemberSpecializationInfo *>, PT2 =
llvm::PointerUnion<clang::FunctionTemplateSpecializationInfo *,
clang::DependentFunctionTemplateSpecializationInfo *>, T =
llvm::PointerUnion<clang::FunctionTemplateSpecializationInfo *,
clang::DependentFunctionTemplateSpecializationInfo *>]: Assertion `is<T>() &&
"Invalid accessor called"' failed.
0  clang     0x0000000001e8c825 llvm::sys::PrintStackTrace(_IO_FILE*) + 37
1  clang     0x0000000001e8cd13
2  libc.so.6 0x00007fa68ba614a0
3  libc.so.6 0x00007fa68ba61425 gsignal + 53
4  libc.so.6 0x00007fa68ba64b8b abort + 379
5  libc.so.6 0x00007fa68ba5a0ee
6  libc.so.6 0x00007fa68ba5a192
7  clang     0x0000000000a6cc93
clang::Sema::ActOnFunctionDeclarator(clang::Scope*, clang::Declarator&,
clang::DeclContext*, clang::TypeSourceInfo*, clang::LookupResult&,
llvm::MutableArrayRef<clang::TemplateParameterList*>, bool&) + 16547
8  clang     0x0000000000a67f67 clang::Sema::HandleDeclarator(clang::Scope*,
clang::Declarator&, llvm::MutableArrayRef<clang::TemplateParameterList*>) +
3207
9  clang     0x0000000000c2cbd8
clang::Sema::ActOnTemplateDeclarator(clang::Scope*,
llvm::MutableArrayRef<clang::TemplateParameterList*>, clang::Declarator&) + 24
10 clang     0x000000000096d146
clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&,
clang::Parser::ParsedTemplateInfo const&) + 70
11 clang     0x00000000009c59fb
clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int,
clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 2635
12 clang     0x00000000009c4b68
clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 824
13 clang     0x00000000009c45f1
clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 257
14 clang     0x0000000000968233
clang::Parser::ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned
int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 867
15 clang     0x000000000095acd5
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 1749
16 clang     0x000000000095a580
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 304
17 clang     0x0000000000956ae6 clang::ParseAST(clang::Sema&, bool, bool) + 454
18 clang     0x000000000080a452 clang::CodeGenAction::ExecuteAction() + 194
19 clang     0x00000000006938c1 clang::FrontendAction::Execute() + 113
20 clang     0x00000000006731dd
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 909
21 clang     0x000000000065a667
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3031
22 clang     0x00000000006512e5 cc1_main(char const**, char const**, char
const*, void*) + 693
23 clang     0x000000000065796b main + 7099
24 libc.so.6 0x00007fa68ba4c76d __libc_start_main + 237
25 clang     0x0000000000650f69

$ clang++ --version
clang version 3.3 (trunk 179138)
Target: x86_64-unknown-linux-gnu
Thread model: posix</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>