comparison mercurial/util.h @ 19753:2c9645c0a582

util.h: fix gcc version checking gcc doesn't have a predefined GCC_VERSION macro.
author Siddharth Agarwal <sid0@fb.com>
date Thu, 19 Sep 2013 09:45:00 -0700
parents 06badf7d10dc
children 1935e8383a9e
comparison
equal deleted inserted replaced
19752:11fdf9f754b7 19753:2c9645c0a582
154 #if defined(_MSC_VER) && (_MSC_VER >= 1300) 154 #if defined(_MSC_VER) && (_MSC_VER >= 1300)
155 static inline uint32_t getbe32(const char *c) 155 static inline uint32_t getbe32(const char *c)
156 { 156 {
157 return _byteswap_ulong(*(uint32_t *)c); 157 return _byteswap_ulong(*(uint32_t *)c);
158 } 158 }
159 #elif GCC_VERSION >= 403 159 #elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
160 static inline uint32_t getbe32(const char *c) 160 static inline uint32_t getbe32(const char *c)
161 { 161 {
162 return __builtin_bswap32(*(uint32_t *)c); 162 return __builtin_bswap32(*(uint32_t *)c);
163 } 163 }
164 #else 164 #else
177 static inline void putbe32(uint32_t x, char *c) 177 static inline void putbe32(uint32_t x, char *c)
178 { 178 {
179 x = _byteswap_ulong(x); 179 x = _byteswap_ulong(x);
180 *(uint32_t *)c = x; 180 *(uint32_t *)c = x;
181 } 181 }
182 #elif GCC_VERSION >= 403 182 #elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
183 static inline void putbe32(uint32_t x, char *c) 183 static inline void putbe32(uint32_t x, char *c)
184 { 184 {
185 x = __builtin_bswap32(x); 185 x = __builtin_bswap32(x);
186 *(uint32_t *)c = x; 186 *(uint32_t *)c = x;
187 } 187 }