summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2018-06-29 10:45:19 -0600
committerMartin Sebor <msebor@redhat.com>2018-06-29 10:45:19 -0600
commit7e8989d03b5b3eea4f4225445c60413d36f2d710 (patch)
tree5baffad1e52fdd343b6b193e2e1887be15669e77
parentbac15a72fcf0ed143dd959604d9317c4bb94160a (diff)
Document interaction with GCC built-ins in the Customizing Printf
section of the manual.
-rw-r--r--ChangeLog5
-rw-r--r--manual/stdio.texi16
2 files changed, 17 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 566b5e00ea..0c79b86a76 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-06-29 Martin Sebor <msebor@redhat.com>
+
+ * manual/stdio.texi (Customizing Printf): Mention interaction
+ with GCC built-ins.
+
2018-06-29 Maciej W. Rozycki <macro@mips.com>
[BZ #23307]
diff --git a/manual/stdio.texi b/manual/stdio.texi
index 379f003b3f..bbd3061bab 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -2962,7 +2962,11 @@ The facilities of this section are declared in the header file
@strong{Portability Note:} The ability to extend the syntax of
@code{printf} template strings is a GNU extension. ISO standard C has
-nothing similar.
+nothing similar. When using the GNU C compiler or any other compiler
+that interprets calls to standard I/O functions according to the rules
+of the language standard it is necessary to disable such handling by
+the appropriate compiler option. Otherwise the behavior of a program
+that relies on the extension is undefined.
@node Registering New Conversions
@subsection Registering New Conversions
@@ -3016,9 +3020,13 @@ function when this format specifier appears in the format string.
The return value is @code{0} on success, and @code{-1} on failure
(which occurs if @var{spec} is out of range).
-You can redefine the standard output conversions, but this is probably
-not a good idea because of the potential for confusion. Library routines
-written by other people could break if you do this.
+@strong{Portability Note:} It is possible to redefine the standard output
+conversions but doing so is strongly discouraged because it may interfere
+with the behavior of programs and compiler implementations that assume
+the effects of the conversions conform to the relevant language standards.
+In addition, conforming compilers need not guarantee that the function
+registered for a standard conversion will be called for each such
+conversion in every format string in a program.
@end deftypefun
@node Conversion Specifier Options