]> git.ipfire.org Git - thirdparty/gcc.git/commit
c: Turn int-conversion warnings into permerrors
authorFlorian Weimer <fweimer@redhat.com>
Fri, 1 Dec 2023 07:10:12 +0000 (08:10 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Fri, 1 Dec 2023 07:10:12 +0000 (08:10 +0100)
commit2c3db94d9fd07681f8806dae93d555779ff4dfb1
tree358fb15404cf605c2ba6383290c2bae56ab07dda
parent370432688259aed1c99f9b29d8d09e534fb94037
c: Turn int-conversion warnings into permerrors

gcc/

* doc/invoke.texi (Warning Options): Document changes.

gcc/c/

PR c/96284
PR c/106416
* c-typeck.cc (build_conditional_expr): Use permerror_opt for
pointer/integer type mismatches, based on -Wint-conversion.
(pedwarn_permerror_init, permerror_init): New function.
(pedwarn_init): Call pedwarn_permerror_init.
(convert_for_assignment): Use permerror_opt and
permerror_init for -Wint-conversion warnings.

gcc/testsuite/

* gcc.dg/permerror-default.c (int_conversion_1)
(int_conversion_2): Expect the new permerrors.
* gcc.dg/permerror-gnu89-nopermissive.c (int_conversion_1)
(int_conversion_2): Likewise.
* gcc.dg/permerror-system.c: Likewise.
* c-c++-common/pr77624-1.c (foo, bar): Expect
error instead of warning.
* gcc.dg/Wint-conversion-2.c: Compile with -fpermissive due
to expected int-conversion warning.
* gcc.dg/Wint-conversion-3.c: Likewise.
* gcc.dg/Wint-conversion-4.c: New test.  Based on
gcc.dg/Wint-conversion-3.c.  Expect int-conversion errors.
* gcc.dg/assign-warn-1.c: Compile with -fpermissive.
* gcc.dg/assign-warn-4.c: New file.  Extracted from
assign-warn1.c.  Expect int-conversion errors.
* gcc.dg/diagnostic-types-1.c: Compile with -fpermissive.
* gcc.dg/diagnostic-types-2.c: New file.  Extracted from
gcc.dg/diagnostic-types-1.c.  Expect some errors instead of
warnings.
* gcc.dg/gomp/pr35738.c: Compile with -fpermissive due to
expected int-conversion error.
* gcc.dg/gomp/pr35738-2.c: New test.  Based on
gcc.dg/gomp/pr35738.c.  Expect int-converison errors.
* gcc.dg/init-excess-3.c: Expect int-converison errors.
* gcc.dg/overflow-warn-1.c: Likewise.
* gcc.dg/overflow-warn-3.c: Likewise.
* gcc.dg/param-type-mismatch.c: Compile with -fpermissive.
* gcc.dg/param-type-mismatch-2.c: New test.  Copied from
gcc.dg/param-type-mismatch.c.  Expect errors.
* gcc.dg/pr61162-2.c: Compile with -fpermissive.
* gcc.dg/pr61162-3.c: New test. Extracted from
gcc.dg/pr61162-2.c.  Expect int-conversion errors.
* gcc.dg/spec-barrier-3.c: Use -fpermissive due to expected
int-conversion error.
* gcc.dg/spec-barrier-3a.c: New test.  Based on
gcc.dg/spec-barrier-3.c.  Expect int-conversion errors.
* gcc.target/aarch64/acle/memtag_2.c: Use -fpermissive due to expected
int-conversion error.
* gcc.target/aarch64/acle/memtag_2a.c: New test.  Copied from
gcc.target/aarch64/acle/memtag_2.c.  Expect error.
* gcc.target/aarch64/sve/acle/general-c/load_3.c (f1): Expect
error.
* gcc.target/aarch64/sve/acle/general-c/store_2.c (f1): Likewise.
* gcc.target/aarch64/sve/acle/general-c/store_scatter_index_1.c
(f1): Likewise.
* gcc.target/aarch64/sve/acle/general-c/store_scatter_index_restricted_1.c
(f1): Likewise.
* gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_2.c
(f1): Likewise.
* gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_restricted_1.c
(f1): Likewise.
32 files changed:
gcc/c/c-typeck.cc
gcc/doc/invoke.texi
gcc/testsuite/c-c++-common/pr77624-1.c
gcc/testsuite/gcc.dg/Wint-conversion-2.c
gcc/testsuite/gcc.dg/Wint-conversion-3.c
gcc/testsuite/gcc.dg/Wint-conversion-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/assign-warn-1.c
gcc/testsuite/gcc.dg/assign-warn-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/diagnostic-types-1.c
gcc/testsuite/gcc.dg/diagnostic-types-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/gomp/pr35738-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/gomp/pr35738.c
gcc/testsuite/gcc.dg/init-excess-3.c
gcc/testsuite/gcc.dg/overflow-warn-1.c
gcc/testsuite/gcc.dg/overflow-warn-3.c
gcc/testsuite/gcc.dg/param-type-mismatch-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/param-type-mismatch.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/pr61162-2.c
gcc/testsuite/gcc.dg/pr61162-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/spec-barrier-3.c
gcc/testsuite/gcc.dg/spec-barrier-3a.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/acle/memtag_2.c
gcc/testsuite/gcc.target/aarch64/acle/memtag_2a.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/load_3.c
gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_2.c
gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_index_1.c
gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_index_restricted_1.c
gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_2.c
gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/store_scatter_offset_restricted_1.c