merge from gcc
This commit is contained in:
parent
352d0b831e
commit
0160e166ee
@ -1,3 +1,13 @@
|
|||||||
|
2013-10-29 Marc Glisse <marc.glisse@inria.fr>
|
||||||
|
|
||||||
|
PR tree-optimization/58689
|
||||||
|
* ansidecl.h (ATTRIBUTE_RETURNS_NONNULL): New macro.
|
||||||
|
* libiberty.h (basename, lbasename, dos_lbasename, unix_lbasename,
|
||||||
|
concat_copy): Mark with attributes nonnull(1) and returns_nonnull.
|
||||||
|
(concat, reconcat, concat_copy2, choose_temp_base, xstrerror,
|
||||||
|
xmalloc, xrealloc, xcalloc, xstrdup, xstrndup, xmemdup, pex_init):
|
||||||
|
Mark with attribute returns_nonnull.
|
||||||
|
|
||||||
2013-10-22 Sterling Augustine <saugustine@google.com>
|
2013-10-22 Sterling Augustine <saugustine@google.com>
|
||||||
|
|
||||||
* gdb/gdb-index.h: Merge from gdb tree.
|
* gdb/gdb-index.h: Merge from gdb tree.
|
||||||
|
@ -311,6 +311,15 @@ So instead we use the macro below and test it against specific values. */
|
|||||||
# endif /* GNUC >= 3.3 */
|
# endif /* GNUC >= 3.3 */
|
||||||
#endif /* ATTRIBUTE_NONNULL */
|
#endif /* ATTRIBUTE_NONNULL */
|
||||||
|
|
||||||
|
/* Attribute `returns_nonnull' was valid as of gcc 4.9. */
|
||||||
|
#ifndef ATTRIBUTE_RETURNS_NONNULL
|
||||||
|
# if (GCC_VERSION >= 4009)
|
||||||
|
# define ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
|
||||||
|
# else
|
||||||
|
# define ATTRIBUTE_RETURNS_NONNULL
|
||||||
|
# endif /* GNUC >= 4.9 */
|
||||||
|
#endif /* ATTRIBUTE_RETURNS_NONNULL */
|
||||||
|
|
||||||
/* Attribute `pure' was valid as of gcc 3.0. */
|
/* Attribute `pure' was valid as of gcc 3.0. */
|
||||||
#ifndef ATTRIBUTE_PURE
|
#ifndef ATTRIBUTE_PURE
|
||||||
# if (GCC_VERSION >= 3000)
|
# if (GCC_VERSION >= 3000)
|
||||||
|
@ -107,7 +107,7 @@ extern int countargv (char**);
|
|||||||
is 1, we found it so don't provide any declaration at all. */
|
is 1, we found it so don't provide any declaration at all. */
|
||||||
#if !HAVE_DECL_BASENAME
|
#if !HAVE_DECL_BASENAME
|
||||||
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
|
#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME)
|
||||||
extern char *basename (const char *);
|
extern char *basename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
|
||||||
#else
|
#else
|
||||||
/* Do not allow basename to be used if there is no prototype seen. We
|
/* Do not allow basename to be used if there is no prototype seen. We
|
||||||
either need to use the above prototype or have one from
|
either need to use the above prototype or have one from
|
||||||
@ -118,18 +118,18 @@ extern char *basename (const char *);
|
|||||||
|
|
||||||
/* A well-defined basename () that is always compiled in. */
|
/* A well-defined basename () that is always compiled in. */
|
||||||
|
|
||||||
extern const char *lbasename (const char *);
|
extern const char *lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
|
||||||
|
|
||||||
/* Same, but assumes DOS semantics (drive name, backslash is also a
|
/* Same, but assumes DOS semantics (drive name, backslash is also a
|
||||||
dir separator) regardless of host. */
|
dir separator) regardless of host. */
|
||||||
|
|
||||||
extern const char *dos_lbasename (const char *);
|
extern const char *dos_lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
|
||||||
|
|
||||||
/* Same, but assumes Unix semantics (absolute paths always start with
|
/* Same, but assumes Unix semantics (absolute paths always start with
|
||||||
a slash, only forward slash is accepted as dir separator)
|
a slash, only forward slash is accepted as dir separator)
|
||||||
regardless of host. */
|
regardless of host. */
|
||||||
|
|
||||||
extern const char *unix_lbasename (const char *);
|
extern const char *unix_lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
|
||||||
|
|
||||||
/* A well-defined realpath () that is always compiled in. */
|
/* A well-defined realpath () that is always compiled in. */
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ extern char *lrealpath (const char *);
|
|||||||
the last argument of this function, to terminate the list of
|
the last argument of this function, to terminate the list of
|
||||||
strings. Allocates memory using xmalloc. */
|
strings. Allocates memory using xmalloc. */
|
||||||
|
|
||||||
extern char *concat (const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
|
extern char *concat (const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_SENTINEL;
|
||||||
|
|
||||||
/* Concatenate an arbitrary number of strings. You must pass NULL as
|
/* Concatenate an arbitrary number of strings. You must pass NULL as
|
||||||
the last argument of this function, to terminate the list of
|
the last argument of this function, to terminate the list of
|
||||||
@ -148,7 +148,7 @@ extern char *concat (const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
|
|||||||
pointer to be freed after the new string is created, similar to the
|
pointer to be freed after the new string is created, similar to the
|
||||||
way xrealloc works. */
|
way xrealloc works. */
|
||||||
|
|
||||||
extern char *reconcat (char *, const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_SENTINEL;
|
extern char *reconcat (char *, const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_SENTINEL;
|
||||||
|
|
||||||
/* Determine the length of concatenating an arbitrary number of
|
/* Determine the length of concatenating an arbitrary number of
|
||||||
strings. You must pass NULL as the last argument of this function,
|
strings. You must pass NULL as the last argument of this function,
|
||||||
@ -161,14 +161,14 @@ extern unsigned long concat_length (const char *, ...) ATTRIBUTE_SENTINEL;
|
|||||||
to terminate the list of strings. The supplied memory is assumed
|
to terminate the list of strings. The supplied memory is assumed
|
||||||
to be large enough. */
|
to be large enough. */
|
||||||
|
|
||||||
extern char *concat_copy (char *, const char *, ...) ATTRIBUTE_SENTINEL;
|
extern char *concat_copy (char *, const char *, ...) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1) ATTRIBUTE_SENTINEL;
|
||||||
|
|
||||||
/* Concatenate an arbitrary number of strings into a GLOBAL area of
|
/* Concatenate an arbitrary number of strings into a GLOBAL area of
|
||||||
memory. You must pass NULL as the last argument of this function,
|
memory. You must pass NULL as the last argument of this function,
|
||||||
to terminate the list of strings. The supplied memory is assumed
|
to terminate the list of strings. The supplied memory is assumed
|
||||||
to be large enough. */
|
to be large enough. */
|
||||||
|
|
||||||
extern char *concat_copy2 (const char *, ...) ATTRIBUTE_SENTINEL;
|
extern char *concat_copy2 (const char *, ...) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_SENTINEL;
|
||||||
|
|
||||||
/* This is the global area used by concat_copy2. */
|
/* This is the global area used by concat_copy2. */
|
||||||
|
|
||||||
@ -226,7 +226,7 @@ extern char *make_relative_prefix_ignore_links (const char *, const char *,
|
|||||||
|
|
||||||
/* Choose a temporary directory to use for scratch files. */
|
/* Choose a temporary directory to use for scratch files. */
|
||||||
|
|
||||||
extern char *choose_temp_base (void) ATTRIBUTE_MALLOC;
|
extern char *choose_temp_base (void) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
|
||||||
|
|
||||||
/* Return a temporary file name or NULL if unable to create one. */
|
/* Return a temporary file name or NULL if unable to create one. */
|
||||||
|
|
||||||
@ -256,7 +256,7 @@ extern int strtoerrno (const char *);
|
|||||||
|
|
||||||
/* ANSI's strerror(), but more robust. */
|
/* ANSI's strerror(), but more robust. */
|
||||||
|
|
||||||
extern char *xstrerror (int);
|
extern char *xstrerror (int) ATTRIBUTE_RETURNS_NONNULL;
|
||||||
|
|
||||||
/* Return the maximum signal number for which strsignal will return a
|
/* Return the maximum signal number for which strsignal will return a
|
||||||
string. */
|
string. */
|
||||||
@ -298,30 +298,30 @@ extern void xmalloc_failed (size_t) ATTRIBUTE_NORETURN;
|
|||||||
message to stderr (using the name set by xmalloc_set_program_name,
|
message to stderr (using the name set by xmalloc_set_program_name,
|
||||||
if any) and then call xexit. */
|
if any) and then call xexit. */
|
||||||
|
|
||||||
extern void *xmalloc (size_t) ATTRIBUTE_MALLOC;
|
extern void *xmalloc (size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
|
||||||
|
|
||||||
/* Reallocate memory without fail. This works like xmalloc. Note,
|
/* Reallocate memory without fail. This works like xmalloc. Note,
|
||||||
realloc type functions are not suitable for attribute malloc since
|
realloc type functions are not suitable for attribute malloc since
|
||||||
they may return the same address across multiple calls. */
|
they may return the same address across multiple calls. */
|
||||||
|
|
||||||
extern void *xrealloc (void *, size_t);
|
extern void *xrealloc (void *, size_t) ATTRIBUTE_RETURNS_NONNULL;
|
||||||
|
|
||||||
/* Allocate memory without fail and set it to zero. This works like
|
/* Allocate memory without fail and set it to zero. This works like
|
||||||
xmalloc. */
|
xmalloc. */
|
||||||
|
|
||||||
extern void *xcalloc (size_t, size_t) ATTRIBUTE_MALLOC;
|
extern void *xcalloc (size_t, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
|
||||||
|
|
||||||
/* Copy a string into a memory buffer without fail. */
|
/* Copy a string into a memory buffer without fail. */
|
||||||
|
|
||||||
extern char *xstrdup (const char *) ATTRIBUTE_MALLOC;
|
extern char *xstrdup (const char *) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
|
||||||
|
|
||||||
/* Copy at most N characters from string into a buffer without fail. */
|
/* Copy at most N characters from string into a buffer without fail. */
|
||||||
|
|
||||||
extern char *xstrndup (const char *, size_t) ATTRIBUTE_MALLOC;
|
extern char *xstrndup (const char *, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
|
||||||
|
|
||||||
/* Copy an existing memory buffer to a new memory buffer without fail. */
|
/* Copy an existing memory buffer to a new memory buffer without fail. */
|
||||||
|
|
||||||
extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC;
|
extern void *xmemdup (const void *, size_t, size_t) ATTRIBUTE_MALLOC ATTRIBUTE_RETURNS_NONNULL;
|
||||||
|
|
||||||
/* Physical memory routines. Return values are in BYTES. */
|
/* Physical memory routines. Return values are in BYTES. */
|
||||||
extern double physmem_total (void);
|
extern double physmem_total (void);
|
||||||
@ -399,7 +399,7 @@ extern void hex_init (void);
|
|||||||
Returns NULL on error. */
|
Returns NULL on error. */
|
||||||
|
|
||||||
extern struct pex_obj *pex_init (int flags, const char *pname,
|
extern struct pex_obj *pex_init (int flags, const char *pname,
|
||||||
const char *tempbase);
|
const char *tempbase) ATTRIBUTE_RETURNS_NONNULL;
|
||||||
|
|
||||||
/* Flags for pex_run. These are bits to be or'ed together. */
|
/* Flags for pex_run. These are bits to be or'ed together. */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user