re PR c++/9367 (error: nonnull argument with extern "C" snprintf prototype)
authorRoger Sayle <roger@eyesopen.com>
Sun, 2 Mar 2003 01:34:34 +0000 (01:34 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sun, 2 Mar 2003 01:34:34 +0000 (01:34 +0000)
commit082916584969704a8b996bdbd0ea353a3b742bd3
tree13a26927c2fd8d16601ecab3d5325e98595e4c07
parent66c4e25802794e3c3c92e3cfdafe3ee8bd3b005c
re PR c++/9367 (error: nonnull argument with extern "C" snprintf prototype)

PR c++/9367
* builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro.
(BT_FN_INT_CONST_STRING_VALIST_ARG,
BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
BT_FN_INT_STRING_CONST_STRING_VAR,
BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types.
* builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2,
ATTR_NONNULL_3): Also include the nothrow attribute.
(sprintf, scanf, sscanf, vprintf, vsprintf, snprintf,
vsnprintf, vscanf, vsscanf): Don't define attributes here.
* builtins.def (putchar, puts): Make full C89 built-ins.
(snprintf, sprintf, scanf, sscanf, vprintf, vscanf,
vsscanf, vsnprintf, vsprintf): New built-ins.
* c-common.c (c_common_nodes_and_builtins): Handle new macro
DEF_FUNCTION_TYPE_VAR_3.

* doc/extend.texi: Document these new built-in functions.

* java/builtins.c (builtin_type): Handle DEF_FUNCTION_TYPE_VAR_3.
(initialize_builtins): Handle DEF_FUNCTION_TYPE_VAR_3.

* g++.old-deja/g++.other/builtins10.C: New test for PR 9367.
* gcc.dg/format/attr-5.c: Handle new conflicting types warning.

From-SVN: r63650
gcc/ChangeLog
gcc/builtin-attrs.def
gcc/builtin-types.def
gcc/builtins.def
gcc/c-common.c
gcc/doc/extend.texi
gcc/java/ChangeLog
gcc/java/builtins.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.old-deja/g++.other/builtins10.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/format/attr-5.c