]> git.ipfire.org Git - thirdparty/gcc.git/commit
c: Turn -Wreturn-mismatch into a permerror
authorFlorian Weimer <fweimer@redhat.com>
Fri, 1 Dec 2023 07:10:13 +0000 (08:10 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Fri, 1 Dec 2023 07:10:13 +0000 (08:10 +0100)
commit4ecfa6c4a9df19b364cbdf6d9de5f0b98c22bd8f
tree82fe02902283e386b142cbc9fa298202921f9b63
parent3ae8882e70ad3c33b7a27a8e521dca6c1d434f74
c: Turn -Wreturn-mismatch into a permerror

gcc/

* doc/invoke.texi (Warning Options): Document that
-Wreturn-mismatch is a permerror in C99 and later.

gcc/c/

PR c/96284
* c-typeck.cc (c_finish_return): Use permerrors
for OPT_Wreturn_mismatch diagnostics.

gcc/testsuite/

* gcc.dg/permerror-default.c (return_mismatch_1)
(return_mismatch_2): Expect new permerror.
* gcc.dg/permerror-gnu89-nopermissive.c (return_mismatch_1):
Likewise.
* gcc.dg/permerror-system.c: Likewise.
* gcc.dg/20030906-1.c: Compile with -fpermissive due to
expected -Wreturn-mismatch error.
* gcc.dg/20030906-1a.c: New test.  Copied from
gcc.dg/20030906-1.c.  Expect the error.
* gcc.dg/20030906-2.c: Compile with -fpermissive due to
expected -Wreturn-mismatch error.
* gcc.dg/20030906-2a.c: New test.  Copied from
gcc.dg/20030906-2.c.  Expect the error.
* gcc.dg/Wreturn-mismatch-1.c: Compile with -fpermissive due to
expected -Wreturn-mismatch error.
* gcc.dg/Wreturn-mismatch-1a.c: New test.  Copied from
gcc.dg/Wreturn-mismatch-1.c.  Expect the error.
* gcc.dg/Wreturn-mismatch-2.c: Compile with -fpermissive due to
expected -Wreturn-mismatch error.
* gcc.dg/Wreturn-mismatch-2a.c: New test.  Copied from
gcc.dg/Wreturn-mismatch-2.c.  Expect the error.
* gcc.dg/diagnostic-range-bad-return.c: Compile with
-fpermissive due to expected -Wreturn-mismatch error.
* gcc.dg/diagnostic-range-bad-return-2.c: New test.
Copied from gcc.dg/diagnostic-range-bad-return.c.  Expect the
error.
* gcc.dg/pr105635-2.c: Expect -Wreturn-mismatch error.
* gcc.dg/pr23075.c: Build with -fpermissive due to
expected -Wreturn-mismatch error.
* gcc.dg/pr23075-2.c: New test.  Copied from gcc.dg/pr23075.c.
Expect the error.
* gcc.dg/pr29521.c: Compile with -fpermissive due to expected
-Wreturn-mismatch error.
* gcc.dg/pr29521-a.c: New test. Copied from gcc.dg/pr29521.c.
Expect error.
* gcc.dg/pr67730.c: Compile with -fpermissive due to expected
-Wreturn-mismatch error.
* gcc.dg/pr67730-a.c: New test.  Copied from
gcc.dg/pr67730-a.c.  Expect error.
* gcc.target/powerpc/conditional-return.c: Compile with
-fpermissive due to expected -Wreturn-mismatch error.
23 files changed:
gcc/c/c-typeck.cc
gcc/doc/invoke.texi
gcc/testsuite/gcc.dg/20030906-1.c
gcc/testsuite/gcc.dg/20030906-1a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/20030906-2.c
gcc/testsuite/gcc.dg/20030906-2a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Wreturn-mismatch-1.c
gcc/testsuite/gcc.dg/Wreturn-mismatch-1a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Wreturn-mismatch-2.c
gcc/testsuite/gcc.dg/Wreturn-mismatch-2a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/diagnostic-range-bad-return-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/diagnostic-range-bad-return.c
gcc/testsuite/gcc.dg/permerror-default.c
gcc/testsuite/gcc.dg/permerror-gnu89-nopermissive.c
gcc/testsuite/gcc.dg/permerror-system.c
gcc/testsuite/gcc.dg/pr105635-2.c
gcc/testsuite/gcc.dg/pr23075-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr23075.c
gcc/testsuite/gcc.dg/pr29521-a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr29521.c
gcc/testsuite/gcc.dg/pr67730-a.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr67730.c
gcc/testsuite/gcc.target/powerpc/conditional-return.c