# Fixes a compilation error when using the devkitARM toolchain or Vita SDK toolchain to compile OpenAL Soft. # For some reason, there's no implicit casting between `int` and `int32_t` and between `unsigned int` and `uint32_t` in devkitARM or Vita SDK even though they're the same size, so we have to do this whole song and dance to appease the compiler. --- a/core/devformat.h +++ b/core/devformat.h @@ -94,9 +94,9 @@ struct DevFmtTypeTraits { using Type = int16_t; }; template<> struct DevFmtTypeTraits { using Type = uint16_t; }; template<> -struct DevFmtTypeTraits { using Type = int32_t; }; +struct DevFmtTypeTraits { static_assert(sizeof(int) == sizeof(int32_t), "`int` should be a 32-bit integer"); using Type = int; }; template<> -struct DevFmtTypeTraits { using Type = uint32_t; }; +struct DevFmtTypeTraits { static_assert(sizeof(unsigned int) == sizeof(uint32_t), "`unsigned int` should be a 32-bit integer"); using Type = unsigned int; }; template<> struct DevFmtTypeTraits { using Type = float; };