OSDN Git Service

* builtin-attrs.def (__builtin_printf_unlocked,
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Dec 2001 02:36:37 +0000 (02:36 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Dec 2001 02:36:37 +0000 (02:36 +0000)
commitc013a46ec61dea34c9cd40bfef19757c1f7b718a
tree840ebfbffcd09b2abfcb6059dc21b1f965cc1ab5
parentba38213c59d1b22a63f8e16e37f5c06a85e456ca
* builtin-attrs.def (__builtin_printf_unlocked,
__builtin_fprintf_unlocked, printf_unlocked, fprintf_unlocked):
Mark with the __printf__ attribute.

* builtins.c (expand_builtin_fputs): Add an `unlocked' parameter
and set the replacement function depending on it.
(expand_builtin): Skip BUILT_IN_*_UNLOCKED when not optimizing.
Handle BUILT_IN_*_UNLOCKED when optimizing.

* builtins.def (DEF_EXT_FALLBACK_BUILTIN,
DEF_EXT_FRONT_END_LIB_BUILTIN): New macros.
Declare the "unlocked" stdio functions.

* c-common.c (c_expand_builtin_printf, c_expand_builtin_fprintf):
Add an `unlocked' parameter and set the replacement function
depending on it.
(c_expand_builtin): Handle BUILT_IN_PRINTF_UNLOCKED and
BUILT_IN_FPRINTF_UNLOCKED.

* doc/extend.texi (printf_unlocked, fprintf_unlocked,
fputs_unlocked): Document.

testsuite:
* gcc.dg/format/builtin-1.c: Test unlocked stdio.
* gcc.dg/format/c90-printf-3.c: Likewise.
* gcc.dg/format/c99-printf-3.c: Likewise.
* gcc.dg/format/ext-1.c: Likewise.
* gcc.dg/format/ext-6.c: Likewise.
* gcc.dg/format/format.h: Prototype unlocked stdio.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48229 138bc75d-0d04-0410-961f-82ee72b054a4
13 files changed:
gcc/ChangeLog
gcc/builtin-attrs.def
gcc/builtins.c
gcc/builtins.def
gcc/c-common.c
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/format/builtin-1.c
gcc/testsuite/gcc.dg/format/c90-printf-3.c
gcc/testsuite/gcc.dg/format/c99-printf-3.c
gcc/testsuite/gcc.dg/format/ext-1.c
gcc/testsuite/gcc.dg/format/ext-6.c
gcc/testsuite/gcc.dg/format/format.h