diff --git a/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h b/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h index 69a66e4..3e50635 100644 --- a/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h +++ b/thirdparty/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h @@ -111,18 +111,10 @@ public: forcedinline uint8 getGreen() const noexcept { return components.g; } forcedinline uint8 getBlue() const noexcept { return components.b; } - #if JUCE_GCC - // NB these are here as a workaround because GCC refuses to bind to packed values. - forcedinline uint8& getAlpha() noexcept { return comps [indexA]; } - forcedinline uint8& getRed() noexcept { return comps [indexR]; } - forcedinline uint8& getGreen() noexcept { return comps [indexG]; } - forcedinline uint8& getBlue() noexcept { return comps [indexB]; } - #else forcedinline uint8& getAlpha() noexcept { return components.a; } forcedinline uint8& getRed() noexcept { return components.r; } forcedinline uint8& getGreen() noexcept { return components.g; } forcedinline uint8& getBlue() noexcept { return components.b; } - #endif //============================================================================== /** Copies another pixel colour over this one. @@ -336,21 +328,22 @@ private: uint8 b, g, r, a; #endif #endif - } JUCE_PACKED; + }; + + // structure must be packed but using the packed attribute causes compile + // failures with newer c++ compilers. Verify default packing produces same layout + static_assert(sizeof(Components) == 4, "Components struct is not packed"); union { uint32 internal; Components components; - #if JUCE_GCC - uint8 comps[4]; // helper struct needed because gcc does not allow references to packed union members - #endif }; -} -#ifndef DOXYGEN - JUCE_PACKED -#endif -; +}; + +// class must be packed but using the packed attribute causes compile +// failures with newer c++ compilers. Verify default packing produces same layout +static_assert(sizeof(PixelARGB) == 4, "PixelARGB class is not packed"); //==============================================================================