Fix building with GCC 5 and subsequently clean up sgi-hashmap.h
authorVedran Miletić <rivanvx@gmail.com>
Thu, 05 Mar 2015 15:50:18 +0100
changeset 11228 883c6212addc
parent 11227 646733b102d1
child 11229 c175b2ae730c
Fix building with GCC 5 and subsequently clean up sgi-hashmap.h
src/network/utils/sgi-hashmap.h
--- a/src/network/utils/sgi-hashmap.h	Sun Mar 01 12:08:36 2015 +0100
+++ b/src/network/utils/sgi-hashmap.h	Thu Mar 05 15:50:18 2015 +0100
@@ -8,28 +8,34 @@
 /* To use gcc extensions.
  */
 #ifdef __GNUC__
-  #if __GNUC__ < 3
-     #include <hash_map.h>
-namespace sgi { using ::hash_map; }; // inherit globals
-  #else 
-     #if __GNUC__ < 4
-       #include <ext/hash_map>
-       #if __GNUC_MINOR__ == 0
-namespace sgi = std;         // GCC 3.0
-       #else
-namespace sgi = ::__gnu_cxx;       // GCC 3.1 and later
-       #endif
-     #else  // gcc 4.x and later
-       #if __GNUC_MINOR__ < 3
-         #ifdef __clang__
+  #if __GNUC__ < 3 // GCC 2.x
+    #include <hash_map.h>
+    namespace sgi { using ::hash_map; }; // inherit globals
+  #else
+    #if __GNUC__ < 4 // GCC 3.x
+      #include <ext/hash_map>
+      #if __GNUC_MINOR__ == 0
+        namespace sgi = std; // GCC 3.0
+      #else
+        namespace sgi = ::__gnu_cxx; // GCC 3.1 and later
+      #endif
+    #else
+       #if __GNUC__ < 5 // GCC 4.x
+         #if __GNUC_MINOR__ < 3 // GCC 4.0, 4.1 and 4.2
+           #ifdef __clang__ // Clang identifies as GCC 4.2
+             #undef __DEPRECATED
+           #endif
+           #include <ext/hash_map>
+           namespace sgi = ::__gnu_cxx;
+         #else
            #undef __DEPRECATED
+           #include <backward/hash_map>
+           namespace sgi = ::__gnu_cxx;
          #endif
-       #include <ext/hash_map>
-namespace sgi = ::__gnu_cxx;
-       #else
-#undef __DEPRECATED
-       #include <backward/hash_map>
-namespace sgi = ::__gnu_cxx;
+       #else // GCC 5.x
+         #undef __DEPRECATED
+         #include <backward/hash_map>
+         namespace sgi = ::__gnu_cxx;
        #endif
      #endif
   #endif