1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
2 // expected-no-diagnostics
3 
4 // This is specifically testing the bullet:
5 // "do not have the same parameter-type-list as any non-template
6 // non-member candidate."
7 // The rest is sort of hard to test separately.
8 
9 enum E1 { one };
10 enum E2 { two };
11 
12 struct A;
13 
14 A operator >= (E1, E1);
15 A operator >= (E1, const E2);
16 
17 E1 a;
18 E2 b;
19 
20 extern A test1;
21 extern decltype(a >= a) test1;
22 extern decltype(a >= b) test1;
23 
24 template <typename T> A operator <= (E1, T);
25 extern bool test2;
26 extern decltype(a <= a) test2;
27 
28 extern A test3;
29 extern decltype(a <= b) test3;