[Ace-users] Re: [ace-bugs] Problem with os_intrin.h

Steve Huston shuston at riverace.com
Mon Jul 16 16:25:50 CDT 2007


Hi Juraj,

Thank you for the PROBLEM-REPORT-FORM.

I've made this change locally and it'll run with the daily VC7.1 test
to verify it doesn't have any side-affects. The change doesn't affect
VC8 usage.

Thanks!
-Steve

--
Steve Huston, Riverace Corporation
Would you like ACE to run great on your platform?
See http://www.riverace.com/sponsor.htm

> -----Original Message-----
> From: ace-bugs-bounces at cse.wustl.edu 
> [mailto:ace-bugs-bounces at cse.wustl.edu] On Behalf Of Juraj Ivanèiæ
> Sent: Monday, July 16, 2007 4:02 PM
> To: ace-bugs at cs.wustl.edu
> Subject: [ace-bugs] Problem with os_intrin.h
> 
> 
>     ACE VERSION: 5.5.9
> 
>     HOST MACHINE and OPERATING SYSTEM:
>     Intel Pentium M, Windows XP SP2, Winsock2
> 
>     COMPILER NAME AND VERSION (AND PATCHLEVEL):
>     Visual Studio 7.1
> 
>     THE $ACE_ROOT/ace/config.h: config-win32.h
> 
>     DOES THE PROBLEM AFFECT:
>         COMPILATION?
>         Possibly. In case another library which declares 
> these functions 
> is used.
>        Also, because wrong variable has volatile modifier, 
> the compiler 
> might
>        theoretically produce invalid code.
>         LINKING? No.
>         EXECUTION? No.
> 
>     ACE is affected.
> 
>     SYNOPSIS:
>     Out of date declarations in os_intrin.h
> 
>     DESCRIPTION:
> Declarations of the following two intrinsic functions in os_intrin.h

> might be out of date.
> 
> LONG __cdecl _InterlockedExchange (LPLONG volatile Target, 
> LONG Value);
> LONG __cdecl _InterlockedExchangeAdd (LPLONG volatile Addend, 
> LONG Value);
> 
> should be redeclared as
> 
> LONG __cdecl _InterlockedExchange (LONG volatile * Target, 
> LONG Value);
> LONG __cdecl _InterlockedExchangeAdd (LONG volatile * Addend, 
> LONG Value);
> 
> The former declarations, which are used by ACE, are 
> copy-pasted from the 
> referenced
> MSDN article 
> (http://msdn2.microsoft.com/en-us/library/f24ya7ct(VS.71).aspx).
> However, I believe that this article is incorrect. Logically 
> - pointee 
> is volatile, not the pointer.
> 
> I detected this because ACE conflicted with the declarations 
> used by the 
> Boost 1.34 library
> (boost/detail/interlocked.hpp).
> 
> Newer MSDN articles (e.g. 
> http://msdn2.microsoft.com/en-us/library/ms683590.aspx)
> also contain the latter function signatures.
> 
> _______________________________________________
> ace-bugs mailing list
> ace-bugs at mail.cse.wustl.edu
> http://mail.cse.wustl.edu/mailman/listinfo/ace-bugs
> 




More information about the Ace-users mailing list