From af92a1532834fd2d5d7fbad0d19d675ed86750ae Mon Sep 17 00:00:00 2001
From: Axel Naumann <Axel.Naumann@cern.ch>
Date: Wed, 26 Mar 2008 13:15:49 +0000
Subject: [PATCH] Use address of member cast to volatile const char reference,
 instead of address of member. Allows OffsetOf macro to work also for members
 of struct type where the struct has an overload of op&()

git-svn-id: http://root.cern.ch/svn/root/trunk@22843 27541ba8-7e3a-0410-8455-c3a389f83636
---
 cint/reflex/inc/Reflex/Builder/TypeBuilder.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/cint/reflex/inc/Reflex/Builder/TypeBuilder.h b/cint/reflex/inc/Reflex/Builder/TypeBuilder.h
index d56b849bf9f..d77e2f53cb9 100644
--- a/cint/reflex/inc/Reflex/Builder/TypeBuilder.h
+++ b/cint/reflex/inc/Reflex/Builder/TypeBuilder.h
@@ -19,12 +19,12 @@
 #include <vector>
 
 #if defined(__ICC)
-#define OffsetOf(c1,mem) (int(&(((c1*)0)->mem)))
+#define OffsetOf(c1,mem) (int(&((volatile const char&)((c1*)0)->mem)))
 #else
-#define OffsetOf(c1,mem) ((size_t)(&(((c1*)64)->mem))-64)
+#define OffsetOf(c1,mem) ((size_t)(&((volatile const char&)(((c1*)64)->mem))-64))
 #endif
 
-namespace Reflex{
+namespace Reflex {
 
    RFLX_API Type TypeBuilder( const char * n,
       unsigned int modifiers = 0 );
-- 
GitLab