cleanup: Add and use macro MIN().
[cparser] / adt / util.h
index 19a7bf8..05c40f1 100644 (file)
@@ -1,9 +1,13 @@
+/*
+ * This file is part of cparser.
+ * Copyright (C) 2012 Matthias Braun <matze@braunis.de>
+ */
+
 /**
  * @file
  * @date    16.03.2007
  * @brief   Various utility functions that wrap compiler specific extensions
  * @author  Matthias Braun
- * @version $Id$
  */
 #ifndef _FIRM_UTIL_H_
 #define _FIRM_UTIL_H_
@@ -14,9 +18,9 @@
  *
  * @note This uses the fact, that double case labels are not allowed.
  */
-#define COMPILETIME_ASSERT(x, name)    \
+#define COMPILETIME_ASSERT(x, name) \
        static __attribute__((unused)) void compiletime_assert_##name (int h) { \
-               switch(h) { case 0:     case (x): ; } \
+               switch(h) { case 0: case (x): {} } \
        }
 
 /**
  */
 #define UNLIKELY(x) __builtin_expect((x), 0)
 
+#define lengthof(x) (sizeof(x) / sizeof(*(x)))
+
+#define endof(x) ((x) + lengthof(x))
+
+#undef MAX
+#undef MIN
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+
 #endif