merge from gcc
authorDJ Delorie <dj@redhat.com>
Mon, 1 Jun 2009 19:40:44 +0000 (19:40 +0000)
committerDJ Delorie <dj@redhat.com>
Mon, 1 Jun 2009 19:40:44 +0000 (19:40 +0000)
include/ChangeLog
include/ansidecl.h
include/dyn-string.h
include/fibheap.h
libdecnumber/ChangeLog
libdecnumber/decContext.h
libdecnumber/decDPD.h
libdecnumber/decNumber.h
libdecnumber/dpd/decimal128.h
libdecnumber/dpd/decimal32.h
libdecnumber/dpd/decimal64.h

index 3b97e9cb4c624f5df8d1b237e16f87c6aa4acae9..93308e86395310048b7aea328393edd8b9791d23 100644 (file)
@@ -1,3 +1,12 @@
+2009-05-31  Ian Lance Taylor  <iant@google.com>
+
+       * 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  <gingold@adacore.com>
 
        * fopen-vms.h (FOPEN_RB, FOPEN_WB, FOPEN_AB, FOPEN_RUB, FOPEN_WUB,
index c19955a98a677f66dc9bf5e54291ac0f3aa3efff..c83b8c039d9982c72604c38a7939d586885ea182 100644 (file)
@@ -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   */
index 44e33deba3a5a05731a94153cb05e10a7614072d..2b147271e5f85b52ac2bc07f6696dbb08fb0e80b 100644 (file)
@@ -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) */
index 348c4ae2638987404652212f007b63d8be6be364..a3d09dd9db8d70f1e4f9468f95243686f315ea7f 100644 (file)
@@ -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_ */
index 12e21554698b78382a2e74168ffc4d642fee9554..74fba5990d6f82ee44dfff315e9788062caa2774 100644 (file)
@@ -1,3 +1,12 @@
+2009-05-31  Ian Lance Taylor  <iant@google.com>
+
+       * 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  <nickc@redhat.com>
 
        * decRound.c: Change copyright header to refer to version 3 of
index d6c75f124713e686f33da093089f5a91985f8a56..ae0ca07b859f4f7ab7dc3bd08ee9b39a6559207f 100644 (file)
@@ -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
index 3b998d10043e89bd454acc141f435f8b9a229b77..db4d3434d031102a5dac6f85f38c423d576f4fb8 100644 (file)
@@ -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
index 73a2fd033e9ce7ff865c0259b285b59f796107f0..05ccb9fdf56f1fde3364df146636c7f08fff2d67 100644 (file)
@@ -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
index 5214373cd1da7dcacd2e1eb5e59693800fc51d4b..3c83c81fcaa69ac3c1fefa729a471409a419b775 100644 (file)
@@ -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
index ced33efc1f34371c7ae0a47194e9eff5547e8755..94ddeb80f3f0a41eb5ed6980dc56fb11d038d6a5 100644 (file)
@@ -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
index a55a9c4290637ffe5a761e9744ad99de575b5f9a..c501415381e0ccc57937391a269a3b9411a64565 100644 (file)
@@ -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