1 // PR c++/55652
2 // { dg-do compile }
3 // { dg-options "-std=c++11" }
4 
5 template <typename T>
6 struct A
7 {
8   static const bool a = false;
9 };
10 
11 template <typename X, typename Y = A <X>>
12 struct B
13 {
noexceptB14   B () noexcept (A <Y>::a) {}
15 };
16 
17 template <typename X, typename Y>
18 struct C
19 {
20   X x;
21   Y y;
22 };
23 
24 struct D
25 {
26   D () throw (int);
27 };
28 
29 C <D, B <D>> c;
30