[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