Skip to content

Commit

Permalink
Update imported files: GCC, 2014-05-01 [#1, #42]
Browse files Browse the repository at this point in the history
GCC commit a4ebe104540e7b6d3c637d793dbcd5171b4b8209 (Subversion r209988).

Co-authored-by: Thomas Schwinge <[email protected]>
  • Loading branch information
The GNU Toolchain Authors and tschwinge committed Jul 25, 2023
1 parent 3e548f1 commit c9bc005
Show file tree
Hide file tree
Showing 29 changed files with 3,175 additions and 312 deletions.
7 changes: 2 additions & 5 deletions README-development
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,8 @@ A number of files are imported from GCC:
- 'mkinstalldirs'
- 'move-if-change'

These correspond to GCC commit 9ffaa03201577636e08e596570e95b572674681f
(Subversion r201139).

Exception for 'config.guess', 'config.sub': these correspond to
GCC commit a4ebe104540e7b6d3c637d793dbcd5171b4b8209 (Subversion r209988).
These correspond to GCC commit a4ebe104540e7b6d3c637d793dbcd5171b4b8209
(Subversion r209988).

Exception for 'include/libiberty.h': the 'MAX_ALLOCA_SIZE' definition
introduced in #18 commit 39511bae362d5746c0bf0a1dcbc76297b4a0155c
Expand Down
65 changes: 62 additions & 3 deletions include/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,62 @@
2014-05-01 Steve Ellcey <[email protected]>

* include/longlong.h: Use 'defined()' to check __mips16.

2014-04-30 Richard Sandiford <[email protected]>

* longlong.h (__i386__): Remove W_TYPE_SIZE==64 handling.

2014-04-22 Yufeng Zhang <[email protected]>

* longlong.h: Merge from glibc.

2014-01-21 Tom Tromey <[email protected]>

* ansidecl.h (ANSI_PROTOTYPES, PTRCONST, LONG_DOUBLE, PARAMS)
(VPARAMS, VA_START, VA_OPEN, VA_CLOSE, VA_FIXEDARG, CONST)
(VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID, AND, DOTS)
(NOARGS): Don't define.
* libiberty.h (expandargv, writeargv): Don't use PARAMS.

2013-12-23 Bill Maddox <[email protected]>

* demangle.h (enum gnu_v3_ctor_kinds):
Added literal gnu_v3_unified_ctor.
(enum gnu_v3_ctor_kinds):
Added literal gnu_v3_unified_dtor.

2013-12-04 Richard Sandiford <[email protected]>

* longlong.h: New file.

2013-10-29 Marc Glisse <[email protected]>

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 <[email protected]>

* gdb/gdb-index.h: Merge from gdb tree.

2013-08-20 Alan Modra <[email protected]>

* floatformat.h (floatformat_ibm_long_double): Delete.
(floatformat_ibm_long_double_big): Declare.
(floatformat_ibm_long_double_little): Declare.

2013-08-19 Dehao Chen <[email protected]>

* dwarf2.def (DW_AT_GNU_discriminator): New attribute.

2013-08-02 Caroline Tice <[email protected]>

* vtv-change-permission.h: New file.

2013-04-03 Jason Merrill <[email protected]>

Demangle C++11 ref-qualifier.
Expand Down Expand Up @@ -33,8 +92,8 @@
* demangle.h (enum demangle_component_type): Add
DEMANGLE_COMPONENT_TAGGED_NAME.

2012-10-29 Sterling Augustine <[email protected]>
Cary Coutant <[email protected]>
2012-10-29 Sterling Augustine <[email protected]>
Cary Coutant <[email protected]>

* dwarf2.h (dwarf_location_list_entry_type): New enum with fields
DW_LLE_GNU_end_of_list_entry, DW_LLE_GNU_base_address_selection_entry,
Expand Down Expand Up @@ -301,7 +360,7 @@
Sync LD plugin patch series (part 1/6) with src/include/.
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.

2010-10-06 Andi Kleen <[email protected]>
2010-10-06 Andi Kleen <[email protected]>

* libiberty.h (setproctitle): Add prototype.

Expand Down
150 changes: 11 additions & 139 deletions include/ansidecl.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* ANSI and traditional C compatability macros
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010
2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2013
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Expand All @@ -24,93 +24,16 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
Macro ANSI C definition Traditional C definition
----- ---- - ---------- ----------- - ----------
ANSI_PROTOTYPES 1 not defined
PTR `void *' `char *'
PTRCONST `void *const' `char *'
LONG_DOUBLE `long double' `double'
const not defined `'
volatile not defined `'
signed not defined `'
VA_START(ap, var) va_start(ap, var) va_start(ap)
Note that it is safe to write "void foo();" indicating a function
with no return value, in all K+R compilers we have been able to test.
For declaring functions with prototypes, we also provide these:
PARAMS ((prototype))
-- for functions which take a fixed number of arguments. Use this
when declaring the function. When defining the function, write a
K+R style argument list. For example:
char *strcpy PARAMS ((char *dest, char *source));
...
char *
strcpy (dest, source)
char *dest;
char *source;
{ ... }
VPARAMS ((prototype, ...))
-- for functions which take a variable number of arguments. Use
PARAMS to declare the function, VPARAMS to define it. For example:
int printf PARAMS ((const char *format, ...));
...
int
printf VPARAMS ((const char *format, ...))
{
...
}
For writing functions which take variable numbers of arguments, we
also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros. These
hide the differences between K+R <varargs.h> and C89 <stdarg.h> more
thoroughly than the simple VA_START() macro mentioned above.
VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end.
Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls
corresponding to the list of fixed arguments. Then use va_arg
normally to get the variable arguments, or pass your va_list object
around. You do not declare the va_list yourself; VA_OPEN does it
for you.
Here is a complete example:
int
printf VPARAMS ((const char *format, ...))
{
int result;
VA_OPEN (ap, format);
VA_FIXEDARG (ap, const char *, format);
result = vfprintf (stdout, format, ap);
VA_CLOSE (ap);
return result;
}
You can declare variables either before or after the VA_OPEN,
VA_FIXEDARG sequence. Also, VA_OPEN and VA_CLOSE are the beginning
and end of a block. They must appear at the same nesting level,
and any variables declared after VA_OPEN go out of scope at
VA_CLOSE. Unfortunately, with a K+R compiler, that includes the
argument list. You can have multiple instances of VA_OPEN/VA_CLOSE
pairs in a single function in case you need to traverse the
argument list more than once.
For ease of writing code which uses GCC extensions but needs to be
portable to other compilers, we provide the GCC_VERSION macro that
simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
wrappers around __attribute__. Also, __extension__ will be #defined
to nothing if it doesn't work. See below.
This header also defines a lot of obsolete macros:
CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID,
AND, DOTS, NOARGS. Don't use them. */
to nothing if it doesn't work. See below. */

#ifndef _ANSIDECL_H
#define _ANSIDECL_H 1
Expand Down Expand Up @@ -149,28 +72,8 @@ So instead we use the macro below and test it against specific values. */
C++ compilers, does not define __STDC__, though it acts as if this
was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */

#define ANSI_PROTOTYPES 1
#define PTR void *
#define PTRCONST void *const
#define LONG_DOUBLE long double

/* PARAMS is often defined elsewhere (e.g. by libintl.h), so wrap it in
a #ifndef. */
#ifndef PARAMS
#define PARAMS(ARGS) ARGS
#endif

#define VPARAMS(ARGS) ARGS
#define VA_START(VA_LIST, VAR) va_start(VA_LIST, VAR)

/* variadic function helper macros */
/* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's
use without inhibiting further decls and without declaring an
actual variable. */
#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP, VAR); { struct Qdmy
#define VA_CLOSE(AP) } va_end(AP); }
#define VA_FIXEDARG(AP, T, N) struct Qdmy

#undef const
#undef volatile
#undef signed
Expand All @@ -188,35 +91,9 @@ So instead we use the macro below and test it against specific values. */
# endif
#endif

/* These are obsolete. Do not use. */
#ifndef IN_GCC
#define CONST const
#define VOLATILE volatile
#define SIGNED signed

#define PROTO(type, name, arglist) type name arglist
#define EXFUN(name, proto) name proto
#define DEFUN(name, arglist, args) name(args)
#define DEFUN_VOID(name) name(void)
#define AND ,
#define DOTS , ...
#define NOARGS void
#endif /* ! IN_GCC */

#else /* Not ANSI C. */

#undef ANSI_PROTOTYPES
#define PTR char *
#define PTRCONST PTR
#define LONG_DOUBLE double

#define PARAMS(args) ()
#define VPARAMS(args) (va_alist) va_dcl
#define VA_START(va_list, var) va_start(va_list)

#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP); { struct Qdmy
#define VA_CLOSE(AP) } va_end(AP); }
#define VA_FIXEDARG(AP, TYPE, NAME) TYPE NAME = va_arg(AP, TYPE)

/* some systems define these in header files for non-ansi mode */
#undef const
Expand All @@ -228,20 +105,6 @@ So instead we use the macro below and test it against specific values. */
#define signed
#define inline

#ifndef IN_GCC
#define CONST
#define VOLATILE
#define SIGNED

#define PROTO(type, name, arglist) type name ()
#define EXFUN(name, proto) name()
#define DEFUN(name, arglist, args) name arglist args;
#define DEFUN_VOID(name) name()
#define AND ;
#define DOTS
#define NOARGS
#endif /* ! IN_GCC */

#endif /* ANSI C. */

/* Define macros for some gcc attributes. This permits us to use the
Expand Down Expand Up @@ -311,6 +174,15 @@ So instead we use the macro below and test it against specific values. */
# endif /* GNUC >= 3.3 */
#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. */
#ifndef ATTRIBUTE_PURE
# if (GCC_VERSION >= 3000)
Expand Down
8 changes: 8 additions & 0 deletions include/demangle.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,10 @@ enum gnu_v3_ctor_kinds {
gnu_v3_complete_object_ctor = 1,
gnu_v3_base_object_ctor,
gnu_v3_complete_object_allocating_ctor,
/* These are not part of the V3 ABI. Unified constructors are generated
as a speed-for-space optimization when the -fdeclone-ctor-dtor option
is used, and are always internal symbols. */
gnu_v3_unified_ctor,
gnu_v3_object_ctor_group
};

Expand All @@ -188,6 +192,10 @@ enum gnu_v3_dtor_kinds {
gnu_v3_deleting_dtor = 1,
gnu_v3_complete_object_dtor,
gnu_v3_base_object_dtor,
/* These are not part of the V3 ABI. Unified destructors are generated
as a speed-for-space optimization when the -fdeclone-ctor-dtor option
is used, and are always internal symbols. */
gnu_v3_unified_dtor,
gnu_v3_object_dtor_group
};

Expand Down
3 changes: 3 additions & 0 deletions include/dwarf2.def
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,9 @@ DW_AT (DW_AT_GNU_ranges_base, 0x2132)
DW_AT (DW_AT_GNU_addr_base, 0x2133)
DW_AT (DW_AT_GNU_pubnames, 0x2134)
DW_AT (DW_AT_GNU_pubtypes, 0x2135)
/* Attribute for discriminator.
See http://gcc.gnu.org/wiki/Discriminator */
DW_AT (DW_AT_GNU_discriminator, 0x2136)
/* VMS extensions. */
DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
/* GNAT extensions. */
Expand Down
3 changes: 2 additions & 1 deletion include/floatformat.h
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,8 @@ extern const struct floatformat floatformat_ia64_spill_little;
extern const struct floatformat floatformat_ia64_quad_big;
extern const struct floatformat floatformat_ia64_quad_little;
/* IBM long double (double+double). */
extern const struct floatformat floatformat_ibm_long_double;
extern const struct floatformat floatformat_ibm_long_double_big;
extern const struct floatformat floatformat_ibm_long_double_little;

/* Convert from FMT to a double.
FROM is the address of the extended float.
Expand Down
Loading

0 comments on commit c9bc005

Please sign in to comment.