Pacify IAR warnings for side-effects.
[bertos.git] / cfg / macros.h
index d33ee401ef5cc0010e528363d34d952e92b597d6..ded2261bd9d64de06631508109a5e8bd293a30bc 100755 (executable)
@@ -2,7 +2,7 @@
  * \file
  * <!--
  * Copyright 2003, 2004 Develer S.r.l. (http://www.develer.com/)
- * This file is part of DevLib - See devlib/README for information.
+ * This file is part of DevLib - See README.devlib for information.
  * -->
  *
  * \brief Common and handy function macros
 
 /*#*
  *#* $Log$
+ *#* Revision 1.6  2006/02/10 12:36:57  bernie
+ *#* Pacify IAR warnings for side-effects.
+ *#*
+ *#* Revision 1.5  2005/11/04 16:20:01  bernie
+ *#* Fix reference to README.devlib in header.
+ *#*
+ *#* Revision 1.4  2005/07/03 15:19:09  bernie
+ *#* Doxygen fix.
+ *#*
  *#* Revision 1.3  2005/06/27 21:23:32  bernie
  *#* ROUND_DOWN, ROUND_UP, ROUND_NEAREST: New macros.
  *#*
                } while (0)
 #else /* !COMPILER_TYPEOF */
        /* Sub-optimal implementation that only works with integral types. */
-       #define SWAP(a, b) ((a) ^= (b) ^= (a) ^= (b))
+       #define SWAP(a, b) \
+               do { \
+                       (a) ^= (b); \
+                       (b) ^= (a); \
+                       (a) ^= (b); \
+               } while (0)
+
 #endif /* COMPILER_TYPEOF */
 
 #ifndef BV
 #define ROUND2(x, pad) (((x) + ((pad) - 1)) & ~((pad) - 1))
 
 /*!
- * Integer round macros.
+ * \name Integer round macros.
+ *
  * Round \a x to a multiple of \a base.
  * \note If \a x is signed these macros generate a lot of code.
  * \{