]> git.ipfire.org Git - thirdparty/gcc.git/commit
Implement -Winfinite-recursion [PR88232].
authorMartin Sebor <msebor@redhat.com>
Tue, 23 Nov 2021 22:30:29 +0000 (15:30 -0700)
committerMartin Sebor <msebor@redhat.com>
Tue, 23 Nov 2021 22:36:03 +0000 (15:36 -0700)
commit30ba058f77eedfaf7a0582f5d42aff949710bce4
treea2501014a7faf3b5a4dd6a64f1d8ee7a01733904
parentc59ec55c3459fba619e05ee7f59480b71e85ffd7
Implement -Winfinite-recursion [PR88232].

Resolves:
PR middle-end/88232 - Please implement -Winfinite-recursion

gcc/ChangeLog:

PR middle-end/88232
* Makefile.in (OBJS): Add gimple-warn-recursion.o.
* common.opt: Add -Winfinite-recursion.
* doc/invoke.texi (-Winfinite-recursion): Document.
* passes.def (pass_warn_recursion): Schedule a new pass.
* tree-pass.h (make_pass_warn_recursion): Declare.
* gimple-warn-recursion.c: New file.

gcc/c-family/ChangeLog:

PR middle-end/88232
* c.opt: Add -Winfinite-recursion.

gcc/testsuite/ChangeLog:

PR middle-end/88232
* c-c++-common/attr-used-5.c: Suppress valid warning.
* c-c++-common/attr-used-6.c: Same.
* c-c++-common/attr-used-9.c: Same.
* g++.dg/warn/Winfinite-recursion-2.C: New test.
* g++.dg/warn/Winfinite-recursion-3.C: New test.
* g++.dg/warn/Winfinite-recursion.C: New test.
* gcc.dg/Winfinite-recursion-2.c: New test.
* gcc.dg/Winfinite-recursion.c: New test.
15 files changed:
gcc/Makefile.in
gcc/c-family/c.opt
gcc/common.opt
gcc/doc/invoke.texi
gcc/gimple-warn-recursion.c [new file with mode: 0644]
gcc/passes.def
gcc/testsuite/c-c++-common/attr-used-5.c
gcc/testsuite/c-c++-common/attr-used-6.c
gcc/testsuite/c-c++-common/attr-used-9.c
gcc/testsuite/g++.dg/warn/Winfinite-recursion-2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/warn/Winfinite-recursion-3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/warn/Winfinite-recursion.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/Winfinite-recursion-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Winfinite-recursion.c [new file with mode: 0644]
gcc/tree-pass.h