[rtems commit] score: Add RTEMS_OBFUSCATE_POINTER()

Sebastian Huber sebh at rtems.org
Wed Oct 12 09:13:47 UTC 2016


Module:    rtems
Branch:    master
Commit:    97eaefd49377a8c5407df3de88c1a6f35e093559
Changeset: http://git.rtems.org/rtems/commit/?id=97eaefd49377a8c5407df3de88c1a6f35e093559

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Oct 12 10:44:51 2016 +0200

score: Add RTEMS_OBFUSCATE_POINTER()

Update #2790.

---

 cpukit/score/include/rtems/score/basedefs.h | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/cpukit/score/include/rtems/score/basedefs.h b/cpukit/score/include/rtems/score/basedefs.h
index c378635..ea4d831 100644
--- a/cpukit/score/include/rtems/score/basedefs.h
+++ b/cpukit/score/include/rtems/score/basedefs.h
@@ -10,7 +10,7 @@
  *  COPYRIGHT (c) 1989-2007.
  *  On-Line Applications Research Corporation (OAR).
  *
- *  Copyright (c) 2010-2015 embedded brains GmbH.
+ *  Copyright (c) 2010, 2016 embedded brains GmbH.
  *
  *  The license and distribution terms for this file may be
  *  found in the file LICENSE in this distribution or at
@@ -221,6 +221,16 @@
   #define RTEMS_PRINTFLIKE( _format_pos, _ap_pos )
 #endif
 
+/**
+ * @brief Obfuscates the pointer so that the compiler cannot perform
+ * optimizations based on the pointer value.
+ */
+#if defined(__GNUC__)
+  #define RTEMS_OBFUSCATE_POINTER( _ptr ) __asm__("" : "+r" (_ptr))
+#else
+  #define RTEMS_OBFUSCATE_POINTER( _ptr ) (void) (_ptr)
+#endif
+
 #if __cplusplus >= 201103L
   #define RTEMS_STATIC_ASSERT(cond, msg) \
     static_assert(cond, # msg)



More information about the vc mailing list