PR c/83656 - missing -Wbuiltin-declaration-mismatch on declaration without prototype
authorMartin Sebor <msebor@redhat.com>
Thu, 15 Nov 2018 22:18:54 +0000 (22:18 +0000)
committerMartin Sebor <msebor@gcc.gnu.org>
Thu, 15 Nov 2018 22:18:54 +0000 (15:18 -0700)
commitcd5da9837b26d77136d3a9394747ce4325a95118
tree9a3374d29ebe69ec33462c7e9550317679a7a341
parent2a4030effa436cc4c6a537e633b0b0338b2b3ad4
PR c/83656 - missing -Wbuiltin-declaration-mismatch on declaration without prototype

gcc/c/ChangeLog:

PR c/83656
* c-decl.c (header_for_builtin_fn): Declare.
(diagnose_mismatched_decls): Diagnose declarations of built-in
functions without a prototype.
* c-typeck.c (maybe_warn_builtin_no_proto_arg): New function.
(convert_argument): Same.
(convert_arguments): Factor code out into convert_argument.
Detect mismatches between built-in formal arguments in calls
to built-in without prototype.
(build_conditional_expr): Same.
(type_or_builtin_type): New function.
(convert_for_assignment): Add argument.  Conditionally issue
warnings instead of errors for mismatches.

gcc/testsuite/ChangeLog:

PR c/83656
* gcc.dg/20021006-1.c
* gcc.dg/Wbuiltin-declaration-mismatch.c: New test.
* gcc.dg/Wbuiltin-declaration-mismatch-2.c: New test.
* gcc.dg/Wbuiltin-declaration-mismatch-3.c: New test.
* gcc.dg/Wbuiltin-declaration-mismatch-4.c: New test.
* gcc.dg/Walloca-16.c: Adjust.
* gcc.dg/Wrestrict-4.c: Adjust.
* gcc.dg/Wrestrict-5.c: Adjust.
* gcc.dg/atomic/stdatomic-generic.c: Adjust.
* gcc.dg/atomic/stdatomic-lockfree.c: Adjust.
* gcc.dg/initpri1.c: Adjust.
* gcc.dg/pr15698-1.c: Adjust.
* gcc.dg/pr69156.c: Adjust.
* gcc.dg/pr83463.c: Adjust.
* gcc.dg/redecl-4.c: Adjust.
* gcc.dg/tls/thr-init-2.c: Adjust.
* gcc.dg/torture/pr55890-2.c: Adjust.
* gcc.dg/torture/pr55890-3.c: Adjust.
* gcc.dg/torture/pr67741.c: Adjust.
* gcc.dg/torture/stackalign/sibcall-1.c: Adjust.
* gcc.dg/torture/tls/thr-init-1.c: Adjust.
* gcc.dg/tree-ssa/builtins-folding-gimple-ub.c: Adjust.

From-SVN: r266194
28 files changed:
gcc/c/ChangeLog
gcc/c/c-decl.c
gcc/c/c-typeck.c
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/20021006-1.c
gcc/testsuite/gcc.dg/Walloca-16.c
gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/Wrestrict-4.c
gcc/testsuite/gcc.dg/Wrestrict-5.c
gcc/testsuite/gcc.dg/atomic/stdatomic-generic.c
gcc/testsuite/gcc.dg/atomic/stdatomic-lockfree.c
gcc/testsuite/gcc.dg/initpri1.c
gcc/testsuite/gcc.dg/pr15698-1.c
gcc/testsuite/gcc.dg/pr69156.c
gcc/testsuite/gcc.dg/pr83463.c
gcc/testsuite/gcc.dg/redecl-4.c
gcc/testsuite/gcc.dg/tls/thr-init-2.c
gcc/testsuite/gcc.dg/torture/pr55890-2.c
gcc/testsuite/gcc.dg/torture/pr55890-3.c
gcc/testsuite/gcc.dg/torture/pr67741.c
gcc/testsuite/gcc.dg/torture/pr71816.c
gcc/testsuite/gcc.dg/torture/stackalign/sibcall-1.c
gcc/testsuite/gcc.dg/torture/tls/thr-init-1.c
gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-ub.c