1 // { dg-do compile { target c++11 } }
2 
3 // Test relational operators
4 
5 #define assert_true(b) do { char c[2 * bool(b) - 1]; } while(0)
6 #define assert_false(b) do { char c[1 - 2 * bool(b)]; } while(0)
7 
fun()8 void fun()
9 {
10   assert_true(nullptr == nullptr);
11   assert_false(nullptr != nullptr);
12   assert_false(nullptr < nullptr);
13   assert_false(nullptr > nullptr);
14   assert_true(nullptr <= nullptr);
15   assert_true(nullptr >= nullptr);
16 
17   decltype(nullptr) mynull = 0;
18 
19   assert_true(mynull == nullptr);
20   assert_false(mynull != nullptr);
21   assert_false(mynull < nullptr);
22   assert_false(mynull > nullptr);
23   assert_true(mynull <= nullptr);
24   assert_true(mynull >= nullptr);
25 
26   assert_true(nullptr == mynull);
27   assert_false(nullptr != mynull);
28   assert_false(nullptr < mynull);
29   assert_false(nullptr > mynull);
30   assert_true(nullptr <= mynull);
31   assert_true(nullptr >= mynull);
32 
33   assert_true(mynull == mynull);
34   assert_false(mynull != mynull);
35   assert_false(mynull < mynull);
36   assert_false(mynull > mynull);
37   assert_true(mynull <= mynull);
38   assert_true(mynull >= mynull);
39 }
40