diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/g++.dg/template/overload1.C | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/overload1.C b/gcc/testsuite/g++.dg/template/overload1.C new file mode 100644 index 0000000..404fc2d --- /dev/null +++ b/gcc/testsuite/g++.dg/template/overload1.C @@ -0,0 +1,23 @@ +// 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; |