Full story here: https://llvm.org/bugs/show_bug.cgi?id=24000
Implementing what Richard suggested in the PR.
Cc:ing Dimitry as this caused regression while building some FreeBSD ports.
Details
Details
- Reviewers
rsmith - Commits
- rG8ab69e435074: Merging r243196: --------------------------------------------------------------…
rG922b702bf9d4: [SemaTemplate] Detect instantiation of unparsed exceptions.
rC243196: [SemaTemplate] Detect instantiation of unparsed exceptions.
rL243196: [SemaTemplate] Detect instantiation of unparsed exceptions.
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
For fixing bug 24000, this patch works. Before the patch:
clang -std=c++11 -c pr24000.cpp Assertion failed: (EST == EST_Dynamic && "EST case not considered earlier."), function CalledDecl, file /share/dim/src/llvm/trunk/tools/clang/lib/Sema/SemaDeclCXX.cpp, line 208.
After the patch:
clang -std=c++11 -c pr24000.cpp pr24000.cpp:12:12: error: exception specification is not available until end of class definition D<int> d; ^ pr24000.cpp:14:10: note: in instantiation of template class 'B<int>' requested here B<int> b; ^ 1 error generated.
This also works correctly for the FreeBSD devel/codeblocks port, which now results in this (expected) error:
In file included from cbthreadpool.cpp:18: ../../src/include/cbthreadpool.h:140:33: error: exception specification is not available until end of class definition CountedPtr<wxSemaphore> m_semaphore; ^
Comment Actions
Thanks for testing Dimitry, I'll try to get this in LLVM and FreeBSD after sign-off from Richard.