The fix was suggested by someone else, last year, on december, after I've tried 
to get it to work with __pragma and type casting. But I'm not using it, because 
it offsets the lines. I'm still commenting out VBOX_VCC_WERR ?= -WX

--- On Thu, 2/3/11, Huihong Luo <[email protected]> wrote:

From: Huihong Luo <[email protected]>
Subject: [vbox-dev] latest svn build failure on Windows
To: [email protected]
Date: Thursday, February 3, 2011, 10:21 PM





kBuild: Generating 
C:/virtualbox-dev/vbox-latest/out/win.x86/release/obj/webservice/VirtualBox.xidl
kBuild: xsltproc VBoxSVC - 
C:/virtualbox-dev/vbox-latest/src/VBox/Main/idl/midl.xsl
kBuild: Compiling RuntimeR3 - 
C:/virtualbox-dev/vbox-latest/src/VBox/Runtime/common/misc/circbuf.cpp
circbuf.cpp
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(101) : 
error C2220: warning treated as error - no
 'object' file generated
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(101) : 
warning C4739: reference to variable 'cbSi
ze' exceeds its storage space
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(111) : 
warning C4739: reference to variable 'cbSi
ze' exceeds its storage space
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(138) : 
warning C4739: reference to
 variable 'uUse
d' exceeds its storage space
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(163) : 
warning C4739: reference to variable 'cbOl
d' exceeds its storage space
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(182) : 
warning C4739: reference to variable 'cbSi
ze' exceeds its storage space
c:\virtualbox-dev\vbox-latest\src\vbox\runtime\common\misc\circbuf.cpp(208) : 
warning C4739: reference to variable 'cbOl
d' exceeds its storage space
kmk: *** 
[C:/virtualbox-dev/vbox-latest/out/win.x86/release/obj/RuntimeR3/common/misc/circbuf.obj]
 Error 2
The failing command:
-----Inline Attachment Follows-----

_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev



      
--- C:/vbox/include/iprt/asm.h      original
+++ C:/vbox/include/iprt/asm.h      fixed
@@ -1925,7 +1925,8 @@
     do { \
+        void * puTemp = puRes; \
         switch (sizeof(*(pu))) { \
-            case 1: *(uint8_t  *)(puRes) = ASMAtomicReadU8( (volatile uint8_t  
*)(void *)(pu)); break; \
-            case 2: *(uint16_t *)(puRes) = ASMAtomicReadU16((volatile uint16_t 
*)(void *)(pu)); break; \
-            case 4: *(uint32_t *)(puRes) = ASMAtomicReadU32((volatile uint32_t 
*)(void *)(pu)); break; \
-            case 8: *(uint64_t *)(puRes) = ASMAtomicReadU64((volatile uint64_t 
*)(void *)(pu)); break; \
+            case 1: *(uint8_t  *)(puTemp) = ASMAtomicReadU8( (volatile uint8_t 
 *)(void *)(pu)); break; \
+            case 2: *(uint16_t *)(puTemp) = ASMAtomicReadU16((volatile 
uint16_t *)(void *)(pu)); break; \
+            case 4: *(uint32_t *)(puTemp) = ASMAtomicReadU32((volatile 
uint32_t *)(void *)(pu)); break; \
+            case 8: *(uint64_t *)(puTemp) = ASMAtomicReadU64((volatile 
uint64_t *)(void *)(pu)); break; \
             default: AssertMsgFailed(("ASMAtomicReadSize: size %d is not 
supported\n", sizeof(*(pu)))); \
@@ -2536,5 +2537,6 @@
     do { \
+        void * puTemp = puOld; \
         switch (sizeof(*(pu))) { \
-            case 4: *(uint32_t  *)(puOld) = ASMAtomicAddU32((volatile uint32_t 
*)(void *)(pu), (uint32_t)(uNew)); break; \
-            case 8: *(uint64_t  *)(puOld) = ASMAtomicAddU64((volatile uint64_t 
*)(void *)(pu), (uint64_t)(uNew)); break; \
+            case 4: *(uint32_t  *)(puTemp) = ASMAtomicAddU32((volatile 
uint32_t *)(void *)(pu), (uint32_t)(uNew)); break; \
+            case 8: *(uint64_t  *)(puTemp) = ASMAtomicAddU64((volatile 
uint64_t *)(void *)(pu), (uint64_t)(uNew)); break; \
             default: AssertMsgFailed(("ASMAtomicAddSize: size %d is not 
supported\n", sizeof(*(pu)))); \
@@ -2605,5 +2607,6 @@
     do { \
+        void * puTemp = puOld; \
         switch (sizeof(*(pu))) { \
-            case 4: *(uint32_t  *)(puOld) = ASMAtomicSubU32((volatile uint32_t 
*)(void *)(pu), (uint32_t)(uNew)); break; \
-            case 8: *(uint64_t  *)(puOld) = ASMAtomicSubU64((volatile uint64_t 
*)(void *)(pu), (uint64_t)(uNew)); break; \
+            case 4: *(uint32_t  *)(puTemp) = ASMAtomicSubU32((volatile 
uint32_t *)(void *)(pu), (uint32_t)(uNew)); break; \
+            case 8: *(uint64_t  *)(puTemp) = ASMAtomicSubU64((volatile 
uint64_t *)(void *)(pu), (uint64_t)(uNew)); break; \
             default: AssertMsgFailed(("ASMAtomicSubSize: size %d is not 
supported\n", sizeof(*(pu)))); \
_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev

Reply via email to