[Bug c++/49974] missing -Wreturn-local-addr for indirectly returning reference to local/temporary

msebor at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Sep 24 15:33:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49974

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |msebor at gcc dot gnu.org
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=90905

--- Comment #15 from Martin Sebor <msebor at gcc dot gnu.org> ---
GCC 10 issues two warnings for the first test case in comment #0:

pr49974.C: In function ‘const X& g()’:
pr49974.C:8:15: warning: function returns address of local variable
[-Wreturn-local-addr]
    8 |     return f(x);  // !!!
      |               ^
pr49974.C:7:7: note: declared here
    7 |     X x;
      |       ^
In function ‘const X& h()’:
cc1plus: warning: function returns address of local variable
[-Wreturn-local-addr]
pr49974.C:7:7: note: declared here


The second test case is not diagnosed (due to a similar problem as pr90905). 
The test cases in comment #8  are also not diagnosed.


More information about the Gcc-bugs mailing list