[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