diff --git a/alc/alc.cpp b/alc/alc.cpp index e9405493..c349a4ba 100644 --- a/alc/alc.cpp +++ b/alc/alc.cpp @@ -947,13 +947,9 @@ constexpr int alcEFXMinorVersion{0}; /* To avoid extraneous allocations, a 0-sized FlexArray is defined - * globally as a sharable object. MSVC warns that a zero-sized array will have - * zero objects here, so silence that. + * globally as a sharable object. */ -DIAGNOSTIC_PUSH -msc_pragma(warning(disable : 4815)) al::FlexArray EmptyContextArray{0u}; -DIAGNOSTIC_POP using DeviceRef = al::intrusive_ptr; diff --git a/common/almalloc.h b/common/almalloc.h index 5afab7e1..a2fdd9d8 100644 --- a/common/almalloc.h +++ b/common/almalloc.h @@ -179,11 +179,10 @@ struct FlexArray { const index_type mSize; -DIAGNOSTIC_PUSH -std_pragma("GCC diagnostic ignored \"-Wpedantic\"") -msc_pragma(warning(disable : 4200)) - alignas(alignment) element_type mArray[0]; -DIAGNOSTIC_POP + union { + char mDummy; + alignas(alignment) element_type mArray[1]; + }; static std::unique_ptr Create(index_type count) {