Fix undefined behavior in definition of hsa_amd_memory_fault_reason_t

Currently, the definition of hsa_amd_memory_fault_reason_t tries to
set a constant of 0x8000_0000 by using the definition "1 << 31".

However, the 1 in this definition is a signed integer by C++ rules.
On our architectures, shifting a signed integer by 31 results in
signed integer overflow. Signed integer overflow results in
undefined behavior.

Forcing the 1 to be unsigned avoids this.

Change-Id: I860431eeede4eff29598f646abf3c1337b048d71


[ROCm/ROCR-Runtime commit: 1d6691e06b]
This commit is contained in:
Joseph Greathouse
2024-01-29 08:56:26 -06:00
committed by David Yat Sin
parent d9d10761f5
commit 30a05ed11e
@@ -2296,7 +2296,7 @@ typedef enum {
// SRAM ECC failure (ie registers, no fault address).
HSA_AMD_MEMORY_FAULT_SRAMECC = 1 << 6,
// GPU reset following unspecified hang.
HSA_AMD_MEMORY_FAULT_HANG = 1 << 31
HSA_AMD_MEMORY_FAULT_HANG = 1U << 31
} hsa_amd_memory_fault_reason_t;
/**