[Bug middle-end/90549] missing -Wreturn-local-addr maybe returning an address of a local array plus offset

msebor at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jul 9 04:16:00 GMT 2019


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

--- Comment #5 from Martin Sebor <msebor at gcc dot gnu.org> ---
Author: msebor
Date: Tue Jul  9 04:15:42 2019
New Revision: 273261

URL: https://gcc.gnu.org/viewcvs?rev=273261&root=gcc&view=rev
Log:
PR middle-end/71924 - missing -Wreturn-local-addr returning alloca result
PR middle-end/90549 - missing -Wreturn-local-addr maybe returning an address of
a local array plus offset

gcc/ChangeLog:

        PR middle-end/71924
        PR middle-end/90549
        * gimple-ssa-isolate-paths.c (isolate_path): Add attribute.  Update
        comment.
        (args_loc_t): New type.
        (args_loc_t, locmap_t): same.
        (diag_returned_locals): New function.
        (is_addr_local): Same.
        (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
        (find_implicit_erroneous_behavior): Call
warn_return_addr_local_phi_arg.
        (find_explicit_erroneous_behavior): Call warn_return_addr_local.

gcc/testsuite/ChangeLog:

        PR middle-end/71924
        PR middle-end/90549
        * gcc.c-torture/execute/return-addr.c: New test.
        * gcc.dg/Wreturn-local-addr-2.c: New test.
        * gcc.dg/Wreturn-local-addr-4.c: New test.
        * gcc.dg/Wreturn-local-addr-5.c: New test.
        * gcc.dg/Wreturn-local-addr-6.c: New test.
        * gcc.dg/Wreturn-local-addr-7.c: New test.
        * gcc.dg/Wreturn-local-addr-8.c: New test.
        * gcc.dg/Wreturn-local-addr-9.c: New test.
        * gcc.dg/Wreturn-local-addr-10.c: New test.
        * gcc.dg/Walloca-4.c: Handle expected warnings.
        * gcc.dg/pr41551.c: Same.
        * gcc.dg/pr59523.c: Same.
        * gcc.dg/tree-ssa/pr88775-2.c: Same.
        * gcc.dg/tree-ssa/alias-37.c: Same.
        * gcc.dg/winline-7.c: Same.


Added:
    trunk/gcc/testsuite/gcc.c-torture/execute/return-addr.c
    trunk/gcc/testsuite/gcc.dg/Wreturn-local-addr-10.c
    trunk/gcc/testsuite/gcc.dg/Wreturn-local-addr-2.c
    trunk/gcc/testsuite/gcc.dg/Wreturn-local-addr-3.c
    trunk/gcc/testsuite/gcc.dg/Wreturn-local-addr-4.c
    trunk/gcc/testsuite/gcc.dg/Wreturn-local-addr-5.c
    trunk/gcc/testsuite/gcc.dg/Wreturn-local-addr-6.c
    trunk/gcc/testsuite/gcc.dg/Wreturn-local-addr-7.c
    trunk/gcc/testsuite/gcc.dg/Wreturn-local-addr-8.c
    trunk/gcc/testsuite/gcc.dg/Wreturn-local-addr-9.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/gimple-ssa-isolate-paths.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/Walloca-4.c
    trunk/gcc/testsuite/gcc.dg/pr41551.c
    trunk/gcc/testsuite/gcc.dg/pr59523.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/alias-37.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/pr88775-2.c
    trunk/gcc/testsuite/gcc.dg/winline-7.c
    trunk/libgcc/generic-morestack.c


More information about the Gcc-bugs mailing list