diff mbox

[1/5] libiberty: Expose choose_tmpdir, and fix constness of return type

Message ID 1413222308-25753-2-git-send-email-dmalcolm@redhat.com
State New
Headers show

Commit Message

David Malcolm Oct. 13, 2014, 5:45 p.m. UTC
The jit needs to create a temporary directory, so I need to expose
libiberty's choose_tmpdir as a public entrypoint.

include/ChangeLog:
	* libiberty.h (choose_tmpdir): New prototype.

libiberty/ChangeLog:
	* choose-temp.c (choose_tmpdir): Remove now-redundant local
	copy of prototype.
	* functions.texi: Regenerate.
	* make-temp-file.c (choose_tmpdir): Convert return type from
	char * to const char * - given that this returns a pointer to
	a memoized allocation, the caller must not touch it.
---
 include/libiberty.h        |  5 +++++
 libiberty/choose-temp.c    |  1 -
 libiberty/functions.texi   | 13 ++++++-------
 libiberty/make-temp-file.c |  4 ++--
 4 files changed, 13 insertions(+), 10 deletions(-)

Comments

Jeff Law Oct. 15, 2014, 5:33 p.m. UTC | #1
On 10/13/14 11:45, David Malcolm wrote:
> The jit needs to create a temporary directory, so I need to expose
> libiberty's choose_tmpdir as a public entrypoint.
>
> include/ChangeLog:
> 	* libiberty.h (choose_tmpdir): New prototype.
>
> libiberty/ChangeLog:
> 	* choose-temp.c (choose_tmpdir): Remove now-redundant local
> 	copy of prototype.
> 	* functions.texi: Regenerate.
> 	* make-temp-file.c (choose_tmpdir): Convert return type from
> 	char * to const char * - given that this returns a pointer to
> 	a memoized allocation, the caller must not touch it.
OK.
Jeff
David Malcolm Oct. 15, 2014, 6:56 p.m. UTC | #2
On Wed, 2014-10-15 at 11:33 -0600, Jeff Law wrote:
> On 10/13/14 11:45, David Malcolm wrote:
> > The jit needs to create a temporary directory, so I need to expose
> > libiberty's choose_tmpdir as a public entrypoint.
> >
> > include/ChangeLog:
> > 	* libiberty.h (choose_tmpdir): New prototype.
> >
> > libiberty/ChangeLog:
> > 	* choose-temp.c (choose_tmpdir): Remove now-redundant local
> > 	copy of prototype.
> > 	* functions.texi: Regenerate.
> > 	* make-temp-file.c (choose_tmpdir): Convert return type from
> > 	char * to const char * - given that this returns a pointer to
> > 	a memoized allocation, the caller must not touch it.
> OK.

Thanks.  Possibly a dumb question, but are there any special procedures
concerning commits to libiberty, given that it appears to be shared with
other gnu projects?  (I couldn't find any notes on the website about
this)
DJ Delorie Oct. 15, 2014, 7:10 p.m. UTC | #3
As long as you commit to gcc first, or at the same time as other
commits, you'll be fine.  If you commit elsewhere first or only, it
may be reverted by a script.
diff mbox

Patch

diff --git a/include/libiberty.h b/include/libiberty.h
index bcc1f9a..d09c9a5 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -227,6 +227,11 @@  extern char *make_relative_prefix (const char *, const char *,
 extern char *make_relative_prefix_ignore_links (const char *, const char *,
 						const char *) ATTRIBUTE_MALLOC;
 
+/* Returns a pointer to a directory path suitable for creating temporary
+   files in.  */
+
+extern const char *choose_tmpdir (void) ATTRIBUTE_RETURNS_NONNULL;
+
 /* Choose a temporary directory to use for scratch files.  */
 
 extern char *choose_temp_base (void) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
diff --git a/libiberty/choose-temp.c b/libiberty/choose-temp.c
index 0a454cf..8e1e84b 100644
--- a/libiberty/choose-temp.c
+++ b/libiberty/choose-temp.c
@@ -34,7 +34,6 @@  Boston, MA 02110-1301, USA.  */
 #endif
 
 #include "libiberty.h"
-extern char *choose_tmpdir (void);
 
 /* Name of temporary file.
    mktemp requires 6 trailing X's.  */
diff --git a/libiberty/functions.texi b/libiberty/functions.texi
index 9323ff9..387aee0 100644
--- a/libiberty/functions.texi
+++ b/libiberty/functions.texi
@@ -125,7 +125,7 @@  Uses @code{malloc} to allocate storage for @var{nelem} objects of
 
 @end deftypefn
 
-@c choose-temp.c:46
+@c choose-temp.c:45
 @deftypefn Extension char* choose_temp_base (void)
 
 Return a prefix for temporary file names or @code{NULL} if unable to
@@ -139,7 +139,7 @@  not recommended.
 @end deftypefn
 
 @c make-temp-file.c:96
-@deftypefn Replacement char* choose_tmpdir ()
+@deftypefn Replacement const char* choose_tmpdir ()
 
 Returns a pointer to a directory path suitable for creating temporary
 files in.
@@ -160,9 +160,8 @@  number of seconds used.
   @dots{}, @code{NULL})
 
 Concatenate zero or more of strings and return the result in freshly
-@code{xmalloc}ed memory.  Returns @code{NULL} if insufficient memory is
-available.  The argument list is terminated by the first @code{NULL}
-pointer encountered.  Pointers to empty strings are ignored.
+@code{xmalloc}ed memory.  The argument list is terminated by the first
+@code{NULL} pointer encountered.  Pointers to empty strings are ignored.
 
 @end deftypefn
 
@@ -528,7 +527,7 @@  nineteen EBCDIC varying characters is tested; exercise caution.)
 @end ftable
 @end defvr
 
-@c hashtab.c:336
+@c hashtab.c:328
 @deftypefn Supplemental htab_t htab_create_typed_alloc (size_t @var{size}, @
 htab_hash @var{hash_f}, htab_eq @var{eq_f}, htab_del @var{del_f}, @
 htab_alloc @var{alloc_tab_f}, htab_alloc @var{alloc_f}, @
@@ -1163,7 +1162,7 @@  control over the state of the random number generator.
 
 @end deftypefn
 
-@c concat.c:174
+@c concat.c:160
 @deftypefn Extension char* reconcat (char *@var{optr}, const char *@var{s1}, @
   @dots{}, @code{NULL})
 
diff --git a/libiberty/make-temp-file.c b/libiberty/make-temp-file.c
index 7b74f81..244cc23 100644
--- a/libiberty/make-temp-file.c
+++ b/libiberty/make-temp-file.c
@@ -93,7 +93,7 @@  static char *memoized_tmpdir;
 
 /*
 
-@deftypefn Replacement char* choose_tmpdir ()
+@deftypefn Replacement const char* choose_tmpdir ()
 
 Returns a pointer to a directory path suitable for creating temporary
 files in.
@@ -102,7 +102,7 @@  files in.
 
 */
 
-char *
+const char *
 choose_tmpdir (void)
 {
   if (!memoized_tmpdir)