Fortran: Fix PR 47485.
[gcc.git] / gcc / testsuite / g++.dg / warn / Waddress-8.C
blob797102d6be4ce84ced0151784e9fcfbe8cccea29
1 /* PR c++/96507 - missing -Waddress for member references
2    { dg-do compile }
3    { dg-options "-Wall" } */
5 typedef void F ();
7 extern F 𝔢
8 extern int &eir;
10 bool warn_ext_rfun ()
12   return &efr != 0;           // { dg-warning "-Waddress" }
15 bool warn_ext_rvar ()
17   return &eir != 0;           // { dg-warning "-Waddress" }
21 bool warn_parm_rfun (F &rf)
23   return &rf != 0;            // { dg-warning "-Waddress" }
26 bool warn_parm_rvar (int &ir)
28   return &ir != 0;            // { dg-warning "-Waddress" }
31 // Comparing the address of a reference argument to null also triggers
32 // a -Wnonnull-compare (that seems like a bug, hence PR 103363).
33 // { dg-prune-output "-Wnonnull-compare" }
36 struct S
38   F &fr;
39   int &ir;
42 extern S es, esa[];
44 bool warn_ext_mem_rfun ()
46   return &es.fr != 0;         // { dg-warning "-Waddress" }
49 bool warn_ext_mem_rvar ()
51   return &es.ir != 0;         // { dg-warning "-Waddress" }
55 bool warn_ext_arr_mem_rfun (int i)
57   return &esa[i].fr != 0;     // { dg-warning "-Waddress" }
60 bool warn_ext_arr_mem_rvar (int i)
62   return &esa[i].ir != 0;     // { dg-warning "-Waddress" }
66 bool warn_parm_mem_rfun (S &s)
68   return &s.fr != 0;          // { dg-warning "-Waddress" }
71 bool warn_parm_mem_rvar (S &s)
73   return &s.ir != 0;          // { dg-warning "-Waddress" }
77 bool warn_parm_arr_mem_rfun (S sa[], int i)
79   return &sa[i].fr != 0;      // { dg-warning "-Waddress" }
82 bool warn_parm_arr_mem_rvar (S sa[], int i)
84   return &sa[i].ir != 0;      // { dg-warning "-Waddress" }