Cherry-pick libcxxrt commit 8a853717e61d5d55cbdf74d9d0a7545da5d5ff92:

Author: David Chisnall <theraven@FreeBSD.org>
Date:   Wed Mar 22 12:27:08 2017 +0000

    Simplify some code.

    realloc() with a null pointer is equivalent to malloc, so we don't need
    to handle the two cases independently.

    Fixes #46

This should help with lang/beignet and other programs, which expect
__cxa_demangle(name, NULL, NULL, &status) to return zero in status.

PR:		213732
MFC after:	3 days
This commit is contained in:
Dimitry Andric 2017-03-22 21:45:42 +00:00
parent 7ce037341c
commit 2d23488dac
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=315745

View File

@ -86,15 +86,7 @@ extern "C" char* __cxa_demangle(const char* mangled_name,
if (NULL != demangled)
{
size_t len = strlen(demangled);
if (buf == NULL)
{
if (n)
{
*n = len;
}
return demangled;
}
if (*n < len+1)
if (!buf || (*n < len+1))
{
buf = static_cast<char*>(realloc(buf, len+1));
}