[LLVMbugs] [Bug 21149] New: clang 3.5.0 exits with assertion and stackdump after detecting errors in member template decl in vararg template specialization

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Oct 3 07:48:32 PDT 2014


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

            Bug ID: 21149
           Summary: clang 3.5.0 exits with assertion and stackdump after
                    detecting errors in member template decl in vararg
                    template specialization
           Product: clang
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++11
          Assignee: unassignedclangbugs at nondot.org
          Reporter: vukki.starborn at gmail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 13132
  --> http://llvm.org/bugs/attachment.cgi?id=13132&action=edit
code, clang out (messages and backtrace) and temp files

clang 3.5.0 exits with failed assertion 

clang-3.5:
/home/vukki/clang_3.5_src/llvm-3.5.0.src/tools/clang/lib/AST/DeclBase.cpp:88:
void clang::Decl::setInvalidDecl(bool): Assertion `!isa<TagDecl>(this) ||
!cast<TagDecl>(this)->isCompleteDefinition()' failed.
0  clang-3.5       0x09bbd382 llvm::sys::PrintStackTrace(_IO_FILE*) + 50
1  clang-3.5       0x09bbd5d5
2  clang-3.5       0x09bbcf38
3  linux-gate.so.1 0xb77a4400 __kernel_sigreturn + 0
4  linux-gate.so.1 0xb77a4424 __kernel_vsyscall + 16
5  libc.so.6       0xb745831f gsignal + 79
6  libc.so.6       0xb7459c03 abort + 323
7  libc.so.6       0xb74510b7
8  libc.so.6       0xb7451167
9  clang-3.5       0x0b3d4f23 clang::Decl::setInvalidDecl(bool) + 145
10 clang-3.5       0x0af058d7
clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*,
clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) + 2855


after detecting error in this errorneous code:

template <typename... Arg>
struct Outer;

template <typename... Arg>
struct Outer<Arg...>
{
    template <typename T>
    struct Inner;
};

template <typename... Arg>
template <typename>
struct Outer<Arg...>::Inner<Arg...>
{
};

Outer<int,double,float> o;

-- 
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/20141003/88c23c6b/attachment.html>


More information about the llvm-bugs mailing list