[PATCH] ntoskrnl.exe: Make USD pointers volatile to silent a warning.

Rémi Bernon rbernon at codeweavers.com
Tue Mar 29 13:24:45 CDT 2022


On 3/29/22 20:21, Zebediah Figura wrote:
> On 3/29/22 12:39, Rémi Bernon wrote:
>> Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
>> ---
>>   dlls/ntoskrnl.exe/instr.c | 16 ++++++++--------
>>   1 file changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/dlls/ntoskrnl.exe/instr.c b/dlls/ntoskrnl.exe/instr.c
>> index 8f1aa4d45a3..05976c38b27 100644
>> --- a/dlls/ntoskrnl.exe/instr.c
>> +++ b/dlls/ntoskrnl.exe/instr.c
>> @@ -497,8 +497,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(int);
>>   #define SIB_BASE( sib, rex )    (((sib) & 7) | (((rex) & REX_B) ? 8 
>> : 0))
>>   /* keep in sync with dlls/ntdll/thread.c:thread_init */
>> -static const BYTE *wine_user_shared_data = (BYTE *)0x7ffe0000;
>> -static const BYTE *user_shared_data      = (BYTE *)0xfffff78000000000;
>> +static const volatile BYTE *const volatile wine_user_shared_data = 
>> (BYTE *)0x7ffe0000;
>> +static const volatile BYTE *const volatile user_shared_data      = 
>> (BYTE *)0xfffff78000000000;
> 
> I might be misunderstanding something, but I don't think "static const 
> volatile" makes sense? I.e. the second "volatile" probably shouldn't be 
> there.
> 


I think we had the discussion already last time I sent the patch, and 
this is the version we ended up upon.

The warning fix is actually about making the pointers themselves 
volatile, GCC 11 doesn't like us accessing a pointer to a fixed address, 
which it considers as an empty array.

The other volatile is then here for correctness only, and to make the 
second one less confusing maybe, because it's how it should be (and it 
actually then requires the casts in the memcpy calls).


Cheers,
-- 
Rémi Bernon <rbernon at codeweavers.com>



More information about the wine-devel mailing list