[LLVMbugs] [Bug 12763] New: clang: Assertion `EST != EST_Delayed && EST != EST_Uninstantiated' failed involving templates

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue May 8 04:56:38 PDT 2012


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

             Bug #: 12763
           Summary: clang: Assertion `EST != EST_Delayed && EST !=
                    EST_Uninstantiated' failed involving templates
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: clang at martinien.de
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified


Hi,

the following code asserts in a debug build of clang++:

template<int IX> struct T1;
template<> struct T1<2>
{
    int calc() throw();
};

template<int IX> struct PtrSelector
{
    int (* const funcPtr)() throw();

    PtrSelector() throw()
        : funcPtr(&T1<IX>::calc)
    {
    }
};

template<int IX> struct T2;
template<> struct T2<2>
{
    int calc() throw()
    {
        PtrSelector<2> pSel;
        (*pSel.funcPtr)();
        return 0;
    }
};


clang:
/local/MAR/llvm31/tools/clang/lib/CodeGen/../../include/clang/AST/Type.h:2873:
bool clang::FunctionProtoType::isNothrow(clang::ASTContext&) const: Assertion
`EST != EST_Delayed && EST != EST_Uninstantiated' failed.

1.      /tmp/assert_4.cpp:26:2: current parser token ';'
2.      /tmp/assert_4.cpp:18:12: parsing struct/union/class body 'T2'
3.      /tmp/assert_4.cpp:21:5: parsing function body 'calc'
clang: error: unable to execute command: Aborted
clang: error: clang frontend command failed due to signal (use -v to see
invocation)


This looks similar to Bug 12586 but I have that fix:

clang version 3.1 (branches/release_31 156302)
Target: x86_64-unknown-linux-gnu
Thread model: posix

It has been failing on trunk a couple of times for me so I'm filing it there,
last tested about 4 days ago.

Best regards,
Martin

-- 
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