1// { dg-options "-Wzero-as-null-pointer-constant" } 2 3struct A; 4 5typedef int (A::*pointmemfun) (int); 6typedef int (A::*pointdmem); 7typedef int (*pointfun) (int); 8 9pointmemfun pmfs; 10pointdmem pdms; 11pointfun pfs; 12int* ps; 13 14void f() 15{ 16 pointmemfun pmf(0); // { dg-warning "zero as null pointer" } 17 pointdmem pdm(0); // { dg-warning "zero as null pointer" } 18 pointfun pf(0); // { dg-warning "zero as null pointer" } 19 int* p(0); // { dg-warning "zero as null pointer" } 20 21 pmf = 0; // { dg-warning "zero as null pointer" } 22 23 pdm = 0; // { dg-warning "zero as null pointer" } 24 25 pf = 0; // { dg-warning "zero as null pointer" } 26 27 p = 0; // { dg-warning "zero as null pointer" } 28 29 if (pmf) 30 ; 31 32 if (pdm) 33 ; 34 35 if (pf) 36 ; 37 38 if (p) 39 ; 40 41 if (!pmf) 42 ; 43 44 if (!pdm) 45 ; 46 47 if (!pf) 48 ; 49 50 if (!p) 51 ; 52 53 if (pmf == 0) // { dg-warning "zero as null pointer" } 54 ; 55 56 if (pdm == 0) // { dg-warning "zero as null pointer" } 57 ; 58 59 if (pf == 0) // { dg-warning "zero as null pointer" } 60 ; 61 62 if (p == 0) // { dg-warning "zero as null pointer" } 63 ; 64 65 if (0 == pmf) // { dg-warning "zero as null pointer" } 66 ; 67 68 if (0 == pdm) // { dg-warning "zero as null pointer" } 69 ; 70 71 if (0 == pf) // { dg-warning "zero as null pointer" } 72 ; 73 74 if (0 == p) // { dg-warning "zero as null pointer" } 75 ; 76 77 if (pmf != 0) // { dg-warning "zero as null pointer" } 78 ; 79 80 if (pdm != 0) // { dg-warning "zero as null pointer" } 81 ; 82 83 if (pf != 0) // { dg-warning "zero as null pointer" } 84 ; 85 86 if (p != 0) // { dg-warning "zero as null pointer" } 87 ; 88 89 if (0 != pmf) // { dg-warning "zero as null pointer" } 90 ; 91 92 if (0 != pdm) // { dg-warning "zero as null pointer" } 93 ; 94 95 if (0 != pf) // { dg-warning "zero as null pointer" } 96 ; 97 98 if (0 != p) // { dg-warning "zero as null pointer" } 99 ; 100} 101