[PATCH] D11341: [SemaTemplate] Detect instantiation of unparsed exceptions

Dimitry Andric dimitry at andric.com
Fri Jul 24 04:49:32 PDT 2015


dim added a comment.

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


http://reviews.llvm.org/D11341







More information about the cfe-commits mailing list