| // { dg-do compile } | |
| // { dg-additional-options "-std=c++14 -Wno-deprecated" } | |
| // C++17 does not allow dynamic exception specification. | |
| namespace a { | |
| int b; | |
| class c | |
| { | |
| }; | |
| } | |
| class g | |
| { | |
| public: | |
| g (); | |
| }; | |
| using a::b; | |
| class d | |
| { | |
| public: | |
| d (); | |
| void e (); | |
| }; | |
| class f | |
| { | |
| d | |
| i () | |
| { | |
| static d j; | |
| return d(); | |
| } | |
| int *k () throw (a::c); | |
| }; | |
| int *f::k () throw (a::c) | |
| { | |
| static g h; | |
| i (); | |
| int l = 2; | |
| while (l) | |
| { | |
| --l; | |
| try | |
| { | |
| operator new (b); | |
| } | |
| catch (a::c) | |
| { | |
| } | |
| } | |
| i ().e (); | |
| return 0; | |
| } |