summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cpukit/ChangeLog5
-rw-r--r--cpukit/score/cpu/lm32/rtems/score/lm32.h6
2 files changed, 8 insertions, 3 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog
index 4a4d9ea5e0..cde12220dd 100644
--- a/cpukit/ChangeLog
+++ b/cpukit/ChangeLog
@@ -1,5 +1,10 @@
2011-11-09 Werner Almesberger <werner@almesberger.net>
+ PR 1954/cpukit
+ * score/cpu/lm32/rtems/score/lm32.h: Protect against macro expansion.
+
+2011-11-09 Werner Almesberger <werner@almesberger.net>
+
PR 1957/cpukit
* score/include/rtems/score/coremutex.h,
score/inline/rtems/score/threadmp.inl: Add parentheses to protect
diff --git a/cpukit/score/cpu/lm32/rtems/score/lm32.h b/cpukit/score/cpu/lm32/rtems/score/lm32.h
index 328e6dff59..0b2dc05d78 100644
--- a/cpukit/score/cpu/lm32/rtems/score/lm32.h
+++ b/cpukit/score/cpu/lm32/rtems/score/lm32.h
@@ -74,7 +74,7 @@ extern "C" {
#define lm32_disable_interrupts( _level ) \
do { register uint32_t ie; \
__asm__ volatile ("rcsr %0,ie":"=r"(ie)); \
- _level = ie; \
+ (_level) = ie; \
ie &= (~0x0001); \
__asm__ volatile ("wcsr ie,%0"::"r"(ie)); \
} while (0)
@@ -85,7 +85,7 @@ extern "C" {
#define lm32_flash_interrupts( _level ) \
do { register uint32_t ie; \
__asm__ volatile ("wcsr ie,%0"::"r"(_level)); \
- ie = _level & (~0x0001); \
+ ie = (_level) & (~0x0001); \
__asm__ volatile ("wcsr ie,%0"::"r"(ie)); \
} while (0)
@@ -99,7 +99,7 @@ extern "C" {
#define lm32_interrupt_mask( _mask ) \
do { register uint32_t im; \
__asm__ volatile ("rcsr %0,im":"=r"(im)); \
- im &= ~_mask; \
+ im &= ~(_mask); \
__asm__ volatile ("wcsr im,%0"::"r"(im)); \
} while (0)