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