From: jason Date: Sat, 11 Oct 2014 02:26:33 +0000 (+0000) Subject: PR c++/63194 X-Git-Tag: upstream/5.3.0~5027 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3b9e7f064966f2a7e1b890c157e833a65c7df760;p=platform%2Fupstream%2Flinaro-gcc.git PR c++/63194 * method.c (defaulted_late_check): Call maybe_instantiate_noexcept. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216114 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3e2ab6e..acdb354 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2014-10-10 Jason Merrill + PR c++/63194 + * method.c (defaulted_late_check): Call maybe_instantiate_noexcept. + * method.c (implicitly_declare_fn): Handle deleted lambda default ctor and copy assop here. * class.c (check_bases_and_members): Not here. diff --git a/gcc/cp/method.c b/gcc/cp/method.c index dce2d2b..418ed88 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -1979,6 +1979,7 @@ defaulted_late_check (tree fn) is explicitly defaulted on its first declaration, (...) it is implicitly considered to have the same exception-specification as if it had been implicitly declared. */ + maybe_instantiate_noexcept (fn); tree fn_spec = TYPE_RAISES_EXCEPTIONS (TREE_TYPE (fn)); if (!fn_spec) { diff --git a/gcc/testsuite/g++.dg/cpp0x/noexcept25.C b/gcc/testsuite/g++.dg/cpp0x/noexcept25.C new file mode 100644 index 0000000..e79b786 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/noexcept25.C @@ -0,0 +1,12 @@ +// PR c++/63194 +// { dg-do compile { target c++11 } } + +template +class A { + public: + A() noexcept(noexcept(0)) = default; +}; +class B { + A<0> m_points; +}; +void fn1(A<0>, A<0>) { B(); }