* \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.
* \{