merge from gcc
authorDJ Delorie <dj@redhat.com>
Wed, 3 Jun 2009 21:02:16 +0000 (21:02 +0000)
committerDJ Delorie <dj@redhat.com>
Wed, 3 Jun 2009 21:02:16 +0000 (21:02 +0000)
include/ChangeLog
include/ansidecl.h

index 93308e86395310048b7aea328393edd8b9791d23..1af04e80bc7bfd411f42ae5e6db172ba5a695bfa 100644 (file)
@@ -1,3 +1,7 @@
+2009-06-02  Ian Lance Taylor  <iant@google.com>
+
+       * ansidecl.h (EXPORTED_CONST): Define.
+
 2009-05-31  Ian Lance Taylor  <iant@google.com>
 
        * ansidecl.h: Add extern "C" when compiling with C++.  Treat C++
index c83b8c039d9982c72604c38a7939d586885ea182..f9864cd386424ece83ec45dda3d2a2d27ae51bf2 100644 (file)
@@ -395,6 +395,18 @@ So instead we use the macro below and test it against specific values.  */
 #define __extension__
 #endif
 
+/* This is used to declare a const variable which should be visible
+   outside of the current compilation unit.  Use it as
+     EXPORTED_CONST int i = 1;
+   This is because the semantics of const are different in C and C++.
+   "extern const" is permitted in C but it looks strange, and gcc
+   warns about it when -Wc++-compat is not used.  */
+#ifdef __cplusplus
+#define EXPORTED_CONST extern const
+#else
+#define EXPORTED_CONST const
+#endif
+
 #ifdef __cplusplus
 }
 #endif