Use __typeof__ GNUC keyword for ISO C compatibility
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
diff --git a/src/cc-compat.h b/src/cc-compat.h
index 6bdc651..f701b2d 100644
--- a/src/cc-compat.h
+++ b/src/cc-compat.h
@@ -29,12 +29,6 @@
# endif
#endif
-#ifdef __GNUC__
-# define GIT_TYPEOF(x) (__typeof__(x))
-#else
-# define GIT_TYPEOF(x)
-#endif
-
#if defined(__GNUC__)
# define GIT_ALIGN(x,size) x __attribute__ ((aligned(size)))
#elif defined(_MSC_VER)
@@ -46,7 +40,7 @@
#if defined(__GNUC__)
# define GIT_UNUSED(x) \
do { \
- typeof(x) _unused __attribute__((unused)); \
+ __typeof__(x) _unused __attribute__((unused)); \
_unused = (x); \
} while (0)
#else
diff --git a/src/util.h b/src/util.h
index 68c2b18..e8074fc 100644
--- a/src/util.h
+++ b/src/util.h
@@ -34,7 +34,7 @@
# define GIT_CONTAINER_OF(ptr, type, member) \
__builtin_choose_expr( \
__builtin_offsetof(type, member) == 0 && \
- __builtin_types_compatible_p(typeof(&((type *) 0)->member), typeof(ptr)), \
+ __builtin_types_compatible_p(__typeof__(&((type *) 0)->member), __typeof__(ptr)), \
((type *) (ptr)), \
(void)0)
#else