diff --git a/src/amd/addrlib/src/core/addrcommon.h b/src/amd/addrlib/src/core/addrcommon.h index 83f40ff2eb4..dc00057f891 100644 --- a/src/amd/addrlib/src/core/addrcommon.h +++ b/src/amd/addrlib/src/core/addrcommon.h @@ -184,7 +184,13 @@ #if defined(static_assert) #define ADDR_C_ASSERT(__e) static_assert(__e, "") #else -#define ADDR_C_ASSERT(__e) typedef char __ADDR_C_ASSERT__[(__e) ? 1 : -1] + /* This version of STATIC_ASSERT() relies on VLAs. If COND is + * false/zero, the array size will be -1 and we'll get a compile + * error + */ +# define ADDR_C_ASSERT(__e) do { \ + (void) sizeof(char [1 - 2*!(__e)]); \ + } while (0) #endif namespace Addr