[cfe-dev] Cryptic error: "exception specification is not available until end of class definition"

Sean Silva chisophugis at gmail.com
Mon Jan 5 13:08:20 PST 2015


Looks like there is a FIXME about this
(test/SemaCXX/implicit-exception-spec.cpp):

namespace ExceptionSpecification {
  // FIXME: This diagnostic is quite useless; we should indicate whose
  // exception specification we were looking for and why.
  struct Nested {
    struct T {
      T() noexcept(!noexcept(Nested()));
    } t; // expected-error{{exception specification is not available until
end of class definition}}
  };
}

The offending code is in Sema::ResolveExceptionSpec
in lib/Sema/SemaExceptionSpec.cpp

-- Sean Silva


On Tue, Dec 30, 2014 at 6:26 AM, Richtarsky, Martin <
martin.richtarsky at sap.com> wrote:

> Hi,
>
> with clang trunk I'm getting an error here:
>
> $ cat except-spec.cpp
> ////
> class Thread
> {
> public:
>     virtual ~Thread();
> };
>
> class NetworkProfilerThread : public Thread
> {
> public:
>     //virtual ~NetworkProfilerThread();  // makes it work
>     //~NetworkProfilerThread();          // makes it work
>     struct OutputFileName
>     {
>         virtual ~OutputFileName() throw() { };
>
>     } m_OutputConfig;
> };
> ////
>
> except-spec.cpp:17:7: error: exception specification is not available
> until end of class definition
>     } m_OutputConfig;
>       ^
> 1 error generated.
>
> Uncommenting one of the "makes it work" lines and thus declaring the
> destructor gets rid of the error. I don't know enough about the standard to
> say whether this is expected, but at least the error is quite cryptic and
> cost me some experimenting to find out the problem.
>
> Opinions?
>
> Best regards,
> Martin
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150105/e7195735/attachment.html>


More information about the cfe-dev mailing list