From: DJ Delorie Date: Mon, 1 Jun 2009 19:40:44 +0000 (+0000) Subject: merge from gcc X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=52d6785fd97bd443c21c8de17903ec138fe9fa2f;p=binutils-gdb.git merge from gcc --- diff --git a/include/ChangeLog b/include/ChangeLog index 3b97e9cb4c6..93308e86395 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,12 @@ +2009-05-31 Ian Lance Taylor + + * ansidecl.h: Add extern "C" when compiling with C++. Treat C++ + the way we treat an ISO C compiler. Don't define inline as a + macdro when compiling with C++. + * dyn-string.h: Add header guard DYN_STRING_H. Add extern "C" + when compiling with C++. + * fibheap.h: Add extern "C" when compiling with C++. + 2009-05-25 Tristan Gingold * fopen-vms.h (FOPEN_RB, FOPEN_WB, FOPEN_AB, FOPEN_RUB, FOPEN_WUB, diff --git a/include/ansidecl.h b/include/ansidecl.h index c19955a98a6..c83b8c039d9 100644 --- a/include/ansidecl.h +++ b/include/ansidecl.h @@ -1,5 +1,6 @@ /* ANSI and traditional C compatability macros - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -114,6 +115,10 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. #ifndef _ANSIDECL_H #define _ANSIDECL_H 1 +#ifdef __cplusplus +extern "C" { +#endif + /* Every source file includes this file, so they will all get the switch for lint. */ /* LINTLIBRARY */ @@ -136,7 +141,7 @@ So instead we use the macro below and test it against specific values. */ #define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) #endif /* GCC_VERSION */ -#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) || (defined(__alpha) && defined(__cplusplus)) +#if defined (__STDC__) || defined(__cplusplus) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) /* All known AIX compilers implement these things (but don't always define __STDC__). The RISC/OS MIPS compiler defines these things in SVR4 mode, but does not define __STDC__. */ @@ -173,7 +178,7 @@ So instead we use the macro below and test it against specific values. */ /* inline requires special treatment; it's in C99, and GCC >=2.7 supports it too, but it's not in C89. */ #undef inline -#if __STDC_VERSION__ > 199901L +#if __STDC_VERSION__ > 199901L || defined(__cplusplus) /* it's a keyword */ #else # if GCC_VERSION >= 2007 @@ -390,4 +395,8 @@ So instead we use the macro below and test it against specific values. */ #define __extension__ #endif +#ifdef __cplusplus +} +#endif + #endif /* ansidecl.h */ diff --git a/include/dyn-string.h b/include/dyn-string.h index 44e33deba3a..2b147271e5f 100644 --- a/include/dyn-string.h +++ b/include/dyn-string.h @@ -1,5 +1,6 @@ /* An abstract string datatype. - Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2002, 2004, 2005, 2009 + Free Software Foundation, Inc. Contributed by Mark Mitchell (mark@markmitchell.com). This file is part of GCC. @@ -19,6 +20,12 @@ along with GCC; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ +#ifndef DYN_STRING_H +#define DYN_STRING_H + +#ifdef __cplusplus +extern "C" { +#endif typedef struct dyn_string { @@ -58,3 +65,9 @@ extern int dyn_string_append_cstr (dyn_string_t, const char *); extern int dyn_string_append_char (dyn_string_t, int); extern int dyn_string_substring (dyn_string_t, dyn_string_t, int, int); extern int dyn_string_eq (dyn_string_t, dyn_string_t); + +#ifdef __cplusplus +} +#endif + +#endif /* !defined (DYN_STRING_H) */ diff --git a/include/fibheap.h b/include/fibheap.h index 348c4ae2638..a3d09dd9db8 100644 --- a/include/fibheap.h +++ b/include/fibheap.h @@ -1,5 +1,6 @@ /* A Fibonacci heap datatype. - Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2009 + Free Software Foundation, Inc. Contributed by Daniel Berlin (dan@cgsoftware.com). This file is part of GCC. @@ -42,6 +43,10 @@ Boston, MA 02110-1301, USA. */ #include "ansidecl.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef long fibheapkey_t; typedef struct fibheap @@ -83,4 +88,8 @@ extern void *fibheap_delete_node (fibheap_t, fibnode_t); extern void fibheap_delete (fibheap_t); extern fibheap_t fibheap_union (fibheap_t, fibheap_t); +#ifdef __cplusplus +} +#endif + #endif /* _FIBHEAP_H_ */ diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog index 12e21554698..74fba5990d6 100644 --- a/libdecnumber/ChangeLog +++ b/libdecnumber/ChangeLog @@ -1,3 +1,12 @@ +2009-05-31 Ian Lance Taylor + + * decContext.h: Add extern "C" if compiling with C++. + * decDPD.h: Likewise. + * decNumber.h: Likewise. + * dpd/decimal32.h: Likewise. + * dpd/decimal64.h: Likewise. + * dpd/decimal128.h: Likewise. + 2009-04-09 Nick Clifton * decRound.c: Change copyright header to refer to version 3 of diff --git a/libdecnumber/decContext.h b/libdecnumber/decContext.h index d6c75f12471..ae0ca07b859 100644 --- a/libdecnumber/decContext.h +++ b/libdecnumber/decContext.h @@ -245,6 +245,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "decContextSymbols.h" + #ifdef __cplusplus + extern "C" { + #endif + extern decContext * decContextClearStatus(decContext *, uint32_t); extern decContext * decContextDefault(decContext *, int32_t); extern enum rounding decContextGetRounding(decContext *); @@ -262,4 +266,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see extern uint32_t decContextTestStatus(decContext *, uint32_t); extern decContext * decContextZeroStatus(decContext *); + #ifdef __cplusplus + } + #endif + #endif diff --git a/libdecnumber/decDPD.h b/libdecnumber/decDPD.h index 3b998d10043..db4d3434d03 100644 --- a/libdecnumber/decDPD.h +++ b/libdecnumber/decDPD.h @@ -59,6 +59,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #if defined(DEC_BCD2DPD) && DEC_BCD2DPD==1 && !defined(DECBCD2DPD) #define DECBCD2DPD +#ifdef __cplusplus +extern "C" { +#endif + const uint16_t BCD2DPD[2458]={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 32, 33, @@ -1206,5 +1210,9 @@ const uint8_t BIN2BCD8[4000]={ 9,8,1,3, 9,8,2,3, 9,8,3,3, 9,8,4,3, 9,8,5,3, 9,8,6,3, 9,8,7,3, 9,8,8,3, 9,8,9,3, 9,9,0,3, 9,9,1,3, 9,9,2,3, 9,9,3,3, 9,9,4,3, 9,9,5,3, 9,9,6,3, 9,9,7,3, 9,9,8,3, 9,9,9,3}; + +#ifdef __cplusplus +} #endif +#endif diff --git a/libdecnumber/decNumber.h b/libdecnumber/decNumber.h index 73a2fd033e9..05ccb9fdf56 100644 --- a/libdecnumber/decNumber.h +++ b/libdecnumber/decNumber.h @@ -108,6 +108,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "decNumberSymbols.h" + #ifdef __cplusplus + extern "C" { + #endif + /* Conversions */ decNumber * decNumberFromInt32(decNumber *, int32_t); decNumber * decNumberFromUInt32(decNumber *, uint32_t); @@ -192,4 +196,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see && (((dn)->bits&DECSPECIAL)==0)) #define decNumberRadix(dn) (10) + #ifdef __cplusplus + } + #endif + #endif diff --git a/libdecnumber/dpd/decimal128.h b/libdecnumber/dpd/decimal128.h index 5214373cd1d..3c83c81fcaa 100644 --- a/libdecnumber/dpd/decimal128.h +++ b/libdecnumber/dpd/decimal128.h @@ -79,6 +79,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "decimal128Symbols.h" + #ifdef __cplusplus + extern "C" { + #endif + /* String conversions */ decimal128 * decimal128FromString(decimal128 *, const char *, decContext *); char * decimal128ToString(const decimal128 *, char *); @@ -93,4 +97,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see uint32_t decimal128IsCanonical(const decimal128 *); decimal128 * decimal128Canonical(decimal128 *, const decimal128 *); + #ifdef __cplusplus + } + #endif + #endif diff --git a/libdecnumber/dpd/decimal32.h b/libdecnumber/dpd/decimal32.h index ced33efc1f3..94ddeb80f3f 100644 --- a/libdecnumber/dpd/decimal32.h +++ b/libdecnumber/dpd/decimal32.h @@ -77,6 +77,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "decimal32Symbols.h" + #ifdef __cplusplus + extern "C" { + #endif + /* String conversions */ decimal32 * decimal32FromString(decimal32 *, const char *, decContext *); char * decimal32ToString(const decimal32 *, char *); @@ -91,4 +95,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see uint32_t decimal32IsCanonical(const decimal32 *); decimal32 * decimal32Canonical(decimal32 *, const decimal32 *); + #ifdef __cplusplus + } + #endif + #endif diff --git a/libdecnumber/dpd/decimal64.h b/libdecnumber/dpd/decimal64.h index a55a9c42906..c501415381e 100644 --- a/libdecnumber/dpd/decimal64.h +++ b/libdecnumber/dpd/decimal64.h @@ -79,6 +79,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include "decimal64Symbols.h" + #ifdef __cplusplus + extern "C" { + #endif + /* String conversions */ decimal64 * decimal64FromString(decimal64 *, const char *, decContext *); char * decimal64ToString(const decimal64 *, char *); @@ -93,4 +97,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see uint32_t decimal64IsCanonical(const decimal64 *); decimal64 * decimal64Canonical(decimal64 *, const decimal64 *); + #ifdef __cplusplus + } + #endif + #endif