Mercurial > hg
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 } |