I was just asking because I observed such a call in _rw_bufcat().
It happens when the printf-like functions in tests/src/printf.cpp
are creating a new buffer for formatting operations.
Brad.
-Original Message-
From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor
Sent: Thursday, April 10, 2008 7:40 PM
To: dev@stdcxx.apache.org
Subject: Re: Null src pointer in memcpy?
This is explicitly required in 7.1.4 of C99:
7.1.4 Use of library functions
-1- Each of the following statements applies unless
explicitly stated
otherwise in the detailed descriptions that follow: If
an argument
to a function has an invalid value (such as a value outside the
domain of the function, or a pointer outside the address space
of the program, or a null pointer, or a pointer to
non-modifiable
storage when the corresponding parameter is not
const-qualified)
or a type (after promotion) not expected by a function with
variable number of arguments, the behavior is undefined. ...
Here's an answer to the same question on comp.lang.c.moderated:
http://tinyurl.com/6eqo3n
Martin Sebor wrote:
Eric Lemings wrote:
Is it safe to pass a null pointer as the 2nd argument to
memcpy()? Or
undefined?
Assuming the third argument is 0. Strictly speaking I believe it's
undefined because memcpy(s1, s2, n) is specified to copy n bytes
from the object pointed to by s2 into the object pointed to by s1
and a null pointer doesn't point to an object. An object is defined
as a region of storage in the execution environment, the contents
of which can represent values.
AFAIK, most implementations allow null pointers for no-op calls to
memcpy() but gcc issues a warning when it detects at compile time
that a null pointer is passed as the first or second argument to
memcpy().
Martin