1 // PR c++/71302
2 // { dg-options "-Wzero-as-null-pointer-constant -fdiagnostics-show-caret" }
3
4 #include <cstddef>
5
6 static void
callee_1(int param1,const char * param2,int param3)7 callee_1 (int param1, const char* param2, int param3) {}
8
9 void
test_1(int param1,const char * param2,int param3)10 test_1 (int param1, const char* param2, int param3)
11 {
12 callee_1 (0, 0, 0); // { dg-warning "16: zero as null pointer constant" }
13 /* { dg-begin-multiline-output "" }
14 callee_1 (0, 0, 0);
15 ^
16 { dg-end-multiline-output "" } */
17
18 callee_1 (0, NULL, 0);
19 }
20
21 template <typename T>
22 void
callee_2(int param1,T * param2,int param3)23 callee_2 (int param1, T* param2, int param3) {}
24
25 void
test_2(int param1,const char * param2,int param3)26 test_2 (int param1, const char* param2, int param3)
27 {
28 callee_2<const char*> (0, 0, 0); // { dg-warning "29: zero as null pointer constant" }
29 /* { dg-begin-multiline-output "" }
30 callee_2<const char*> (0, 0, 0);
31 ^
32 { dg-end-multiline-output "" } */
33
34 callee_2<const char*> (0, NULL, 0);
35 }
36
37 void
test_3()38 test_3 ()
39 {
40 const char *msg_a = 0; // { dg-warning "23: zero as null pointer constant" }
41 /* { dg-begin-multiline-output "" }
42 const char *msg_a = 0;
43 ^
44 { dg-end-multiline-output "" } */
45
46 const char *msg_b = NULL;
47 }
48