This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Patch to update format attribute docs


This patch updates the documented details of what format functions get
checked by default.  It passes "make info" and "make dvi".  OK to
commit?

2000-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>

	* extend.texi: Update documentation for default format attributes.

--- extend.texi.orig	Tue Nov 28 12:05:08 2000
+++ extend.texi	Wed Nov 29 00:45:11 2000
@@ -1525,7 +1525,8 @@
 number of the first argument to check against the format string.  For
 functions where the arguments are not available to be checked (such as
 @code{vprintf}), specify the third parameter as zero.  In this case the
-compiler only checks the format string for consistency.
+compiler only checks the format string for consistency.  For
+@code{strftime} formats, the third parameter is required to be zero.

 In the example above, the format string (@code{my_format}) is the second
 argument of the function @code{my_print}, and the arguments to check
@@ -1534,12 +1535,16 @@

 The @code{format} attribute allows you to identify your own functions
 which take format strings as arguments, so that GNU CC can check the
-calls to these functions for errors.  The compiler always checks formats
-for the ANSI library functions @code{printf}, @code{fprintf},
+calls to these functions for errors.  The compiler always (unless
+@samp{-ffreestanding} is used) checks formats
+for the standard library functions @code{printf}, @code{fprintf},
 @code{sprintf}, @code{scanf}, @code{fscanf}, @code{sscanf}, @code{strftime},
 @code{vprintf}, @code{vfprintf} and @code{vsprintf} whenever such
 warnings are requested (using @samp{-Wformat}), so there is no need to
-modify the header file @file{stdio.h}.
+modify the header file @file{stdio.h}.  In C99 mode, the functions
+@code{snprintf}, @code{vsnprintf}, @code{vscanf}, @code{vfscanf} and
+@code{vsscanf} are also checked.
+@xref{C Dialect Options,,Options Controlling C Dialect}.

 @item format_arg (@var{string-index})
 @cindex @code{format_arg} function attribute
@@ -1568,7 +1573,9 @@
 calls to @code{printf}, @code{scanf}, or @code{strftime} function whose
 operands are a call to one of your own function.  The compiler always
 treats @code{gettext}, @code{dgettext}, and @code{dcgettext} in this
-manner.
+manner except when strict ISO C support is requested by @samp{-ansi} or
+an appropriate @samp{-std} option, or @samp{-ffreestanding} is used.
+@xref{C Dialect Options,,Options Controlling C Dialect}.

 @item no_instrument_function
 @cindex @code{no_instrument_function} function attribute

-- 
Joseph S. Myers
jsm28@cam.ac.uk


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]