This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Declare reallocarray by default

In <>, Joseph suggested to use __USE_GNU for this function, but since most of the BSDs and Illumos have it, I think __USE_MISC is more appropriate. We have seen some reports of implicit function declarations, resulting in pointer truncation. Declaring the function for _DEFAULT_SOURCE (i.e., by default, as long as -ansi isn't specified) would avoid such problems.

Subject: [PATCH] reallocarray: Declare under _DEFAULT_SOURCE

Initially, this function was restricted to _GNU_SOURCE, but experience
shows that compatibility with existing build systems is improved if we
declare it under _DEFAULT_SOURCE as well.

2018-08-28  Florian Weimer  <>

	* stdlib/stdlib.h (reallocarray): Make available under __USE_MISC.

diff --git a/NEWS b/NEWS
index 639fb56c9f..325157c0da 100644
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,9 @@ Major new features:
 * Optimized generic sinf, cosf, sincosf and tanf.
+* The reallocarray function is now declared under _DEFAULT_SOURCE, not just
+  for _GNU_SOURCE, to match BSD environments.
 Deprecated and removed features, and other changes affecting compatibility:
 * The glibc.tune tunable namespace has been renamed to glibc.cpu and the
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index 8e23e93557..870e02d904 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -549,7 +549,7 @@ extern void *calloc (size_t __nmemb, size_t __size)
 extern void *realloc (void *__ptr, size_t __size)
      __THROW __attribute_warn_unused_result__;
-#ifdef __USE_GNU
+#ifdef __USE_MISC
 /* Re-allocate the previously allocated block in PTR, making the new
    block large enough for NMEMB elements of SIZE bytes each.  */
 /* __attribute_malloc__ is not used, because if reallocarray returns

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