| // { dg-options "-w" } | |
| // PR c++/9420 | |
| // Bug: We were instantiating B<int> during overload resolution for E<0. | |
| // This is wrong; the contents of B<int> are not relevant, since we can't | |
| // use its constructors (because we'd already be using a constructor for | |
| // C). | |
| enum { E }; | |
| template <typename T> struct A { | |
| static const int a = (E < 0); | |
| }; | |
| template <typename T> class B { | |
| A<int> b; | |
| }; | |
| struct C { | |
| C(B<int>); | |
| }; | |
| int operator<(C, C); | |
| A<int> c; |