X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/00ba414f7f79f8842d25c8b47cb091e20487b819..040b9528d149c2bb2497d47d9175635c03baffe2:/include/wx/beforestd.h

diff --git a/include/wx/beforestd.h b/include/wx/beforestd.h
index 4c79e2660e..5bf6377113 100644
--- a/include/wx/beforestd.h
+++ b/include/wx/beforestd.h
@@ -20,8 +20,9 @@
     it can be included several times.
  */
 
-// VC 7.x isn't as bad as VC6 and doesn't give these warnings
-#if defined(__VISUALC__) && __VISUALC__ <= 1200
+// VC 7.x isn't as bad as VC6 and doesn't give these warnings but eVC (which
+// defines _MSC_VER as 1201) does need to be included as it's VC6-like
+#if defined(__VISUALC__) && __VISUALC__ <= 1201
     // MSVC 5 does not have this
     #if __VISUALC__ > 1100
         // we have to disable (and reenable in afterstd.h) this one because,
@@ -36,6 +37,9 @@
         // 'expression' : signed/unsigned mismatch
         #pragma warning(disable:4018)
 
+        // 'identifier' : unreferenced formal parameter
+        #pragma warning(disable:4100)
+
         // 'conversion' : conversion from 'type1' to 'type2',
         // possible loss of data
         #pragma warning(disable:4244)
@@ -59,3 +63,13 @@
     #pragma warning(disable:4786)
 #endif // VC++ < 7
 
+/**
+    GCC's visibility support is broken for libstdc++ in some older versions
+    (namely Debian/Ubuntu's GCC 4.1, see
+    https://bugs.launchpad.net/ubuntu/+source/gcc-4.1/+bug/109262). We fix it
+    here by mimicking newer versions' behaviour of using default visibility
+    for libstdc++ code.
+ */
+#if defined(HAVE_VISIBILITY) && defined(HAVE_BROKEN_LIBSTDCXX_VISIBILITY)
+    #pragma GCC visibility push(default)
+#endif