-
- Downloads
c: Turn -Wincompatible-pointer-types into a permerror
The change to build_conditional_expr drops the downgrade from a pedwarn to warning for builtins for C99 and later language dialects. It remains a warning in C89 mode (not a permerror), as the -std=gnu89 -fno-permissive test shows. gcc/ * doc/invoke.texi (Warning Options): Document changes. gcc/c/ PR c/96284 * c-typeck.cc (build_conditional_expr): Upgrade most pointer type mismatches to a permerror. (convert_for_assignment): Use permerror_opt and permerror_init for OPT_Wincompatible_pointer_types warnings. gcc/testsuite/ * gcc.dg/permerror-default.c (incompatible_pointer_types): Expect new permerror. * gcc.dg/permerror-gnu89-nopermissive.c (incompatible_pointer_types): Likewise. * gcc.dg/permerror-pedantic.c (incompatible_pointer_types): Likewise. * gcc.dg/permerror-system.c: Likewise. * gcc.dg/Wincompatible-pointer-types-2.c: Compile with -fpermissive due to expected errors. * gcc.dg/Wincompatible-pointer-types-5.c: New test. Copied from gcc.dg/Wincompatible-pointer-types-2.c. Expect errors. * gcc.dg/anon-struct-11.c: Compile with -fpermissive due to expected errors. * gcc.dg/anon-struct-11a.c: New test. Copied from gcc.dg/anon-struct-11.c. Expect errors. * gcc.dg/anon-struct-13.c: Compile with -fpermissive due to expected errors. * gcc.dg/anon-struct-13a.c: New test. Copied from gcc.dg/anon-struct-13.c. Expect errors. * gcc.dg/builtin-arith-overflow-4.c: Compile with -fpermissive due to expected errors. * gcc.dg/builtin-arith-overflow-4a.c: New test. Copied from gcc.dg/builtin-arith-overflow-4.c. Expect errors. * gcc.dg/c23-qual-4.c: Expect -Wincompatible-pointer-types errors. * gcc.dg/dfp/composite-type.c: Compile with -fpermissive due to expected errors. * gcc.dg/dfp/composite-type-2.c: New test. Copied from gcc.dg/dfp/composite-type.c. Expect errors. * gcc.dg/diag-aka-1.c: Compile with -fpermissive due to expected errors. * gcc.dg/diag-aka-1a.c: New test. Copied from gcc.dg/diag-aka-1a.c. Expect errors. * gcc.dg/enum-compat-1.c: Compile with -fpermissive due to expected errors. * gcc.dg/enum-compat-2.c: New test. Copied from gcc.dg/enum-compat-1.c. Expect errors. * gcc.dg/func-ptr-conv-1.c: Compile with -fpermissive due to expected errors. * gcc.dg/func-ptr-conv-2.c: New test. Copied from gcc.dg/func-ptr-conv-1.c. Expect errors. * gcc.dg/init-bad-7.c: Compile with -fpermissive due to expected errors. * gcc.dg/init-bad-7a.c: New test. Copied from gcc.dg/init-bad-7.c. Expect errors. * gcc.dg/noncompile/incomplete-3.c (foo): Expect -Wincompatible-pointer-types error. * gcc.dg/param-type-mismatch-2.c (test8): Likewise. * gcc.dg/pointer-array-atomic.c: Compile with -fpermissive due to expected errors. * gcc.dg/pointer-array-atomic-2.c: New test. Copied from gcc.dg/pointer-array-atomic.c. Expect errors. * gcc.dg/pointer-array-quals-1.c (test): Expect -Wincompatible-pointer-types errors. * gcc.dg/transparent-union-1.c: Compile with -fpermissive due to expected errors. * gcc.dg/transparent-union-1a.c: New test. Copied from gcc.dg/transparent-union-1.c. Expect errors. * gcc.target/aarch64/acle/memtag_2a.c (test_memtag_warning_return_qualifier): Expect additional errors. * gcc.target/aarch64/sve/acle/general-c/load_2.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_1.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_2.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_3.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_4.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_5.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_1.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_2.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_3.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/load_ext_gather_offset_restricted_4.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/sizeless-1.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/sizeless-2.c (f1): Likewise. * gcc.target/aarch64/sve/acle/general-c/store_1.c (f1): Likewise. * 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. * gcc.target/aarch64/sve/acle/general/attributes_7.c (f1): Likewise. * gcc.target/i386/sse2-bfloat16-scalar-typecheck.c (footest): Expect -Wincompatible-pointer-types errors. * gcc.target/i386/vect-bfloat16-typecheck_1.c (footest): Likewise. * gcc.target/i386/vect-bfloat16-typecheck_2.c (footest): Likewise.
Showing
- gcc/c/c-typeck.cc 35 additions, 27 deletionsgcc/c/c-typeck.cc
- gcc/doc/invoke.texi 6 additions, 0 deletionsgcc/doc/invoke.texi
- gcc/testsuite/gcc.dg/Wincompatible-pointer-types-2.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/Wincompatible-pointer-types-2.c
- gcc/testsuite/gcc.dg/Wincompatible-pointer-types-5.c 10 additions, 0 deletionsgcc/testsuite/gcc.dg/Wincompatible-pointer-types-5.c
- gcc/testsuite/gcc.dg/anon-struct-11.c 2 additions, 3 deletionsgcc/testsuite/gcc.dg/anon-struct-11.c
- gcc/testsuite/gcc.dg/anon-struct-11a.c 111 additions, 0 deletionsgcc/testsuite/gcc.dg/anon-struct-11a.c
- gcc/testsuite/gcc.dg/anon-struct-13.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/anon-struct-13.c
- gcc/testsuite/gcc.dg/anon-struct-13a.c 76 additions, 0 deletionsgcc/testsuite/gcc.dg/anon-struct-13a.c
- gcc/testsuite/gcc.dg/builtin-arith-overflow-4.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/builtin-arith-overflow-4.c
- gcc/testsuite/gcc.dg/builtin-arith-overflow-4a.c 43 additions, 0 deletionsgcc/testsuite/gcc.dg/builtin-arith-overflow-4a.c
- gcc/testsuite/gcc.dg/c23-qual-4.c 3 additions, 3 deletionsgcc/testsuite/gcc.dg/c23-qual-4.c
- gcc/testsuite/gcc.dg/dfp/composite-type-2.c 58 additions, 0 deletionsgcc/testsuite/gcc.dg/dfp/composite-type-2.c
- gcc/testsuite/gcc.dg/dfp/composite-type.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/dfp/composite-type.c
- gcc/testsuite/gcc.dg/diag-aka-1.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/diag-aka-1.c
- gcc/testsuite/gcc.dg/diag-aka-1a.c 29 additions, 0 deletionsgcc/testsuite/gcc.dg/diag-aka-1a.c
- gcc/testsuite/gcc.dg/enum-compat-1.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/enum-compat-1.c
- gcc/testsuite/gcc.dg/enum-compat-2.c 32 additions, 0 deletionsgcc/testsuite/gcc.dg/enum-compat-2.c
- gcc/testsuite/gcc.dg/func-ptr-conv-1.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/func-ptr-conv-1.c
- gcc/testsuite/gcc.dg/func-ptr-conv-2.c 56 additions, 0 deletionsgcc/testsuite/gcc.dg/func-ptr-conv-2.c
- gcc/testsuite/gcc.dg/init-bad-7.c 1 addition, 1 deletiongcc/testsuite/gcc.dg/init-bad-7.c
Loading
Please register or sign in to comment