diff --git a/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp b/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp index 52153207ad..9eb1b03ead 100644 --- a/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp +++ b/modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp @@ -1567,7 +1567,7 @@ public: const int num = random.nextInt (range) + 1; HeapBlock buffer1 (num + 16), buffer2 (num + 16); - HeapBlock buffer3 (num + 16); + HeapBlock buffer3 (num + 16, true); #if JUCE_ARM ValueType* const data1 = buffer1; diff --git a/modules/juce_audio_basics/midi/juce_MidiRPN.cpp b/modules/juce_audio_basics/midi/juce_MidiRPN.cpp index d18eff7181..ae5fc500f2 100644 --- a/modules/juce_audio_basics/midi/juce_MidiRPN.cpp +++ b/modules/juce_audio_basics/midi/juce_MidiRPN.cpp @@ -55,11 +55,6 @@ void MidiRPNDetector::reset() noexcept } //============================================================================== -MidiRPNDetector::ChannelState::ChannelState() noexcept - : parameterMSB (0xff), parameterLSB (0xff), valueMSB (0xff), valueLSB (0xff), isNRPN (false) -{ -} - bool MidiRPNDetector::ChannelState::handleController (int channel, int controllerNumber, int value, diff --git a/modules/juce_audio_basics/midi/juce_MidiRPN.h b/modules/juce_audio_basics/midi/juce_MidiRPN.h index 9a70c1ca5b..f1fb9ff01e 100644 --- a/modules/juce_audio_basics/midi/juce_MidiRPN.h +++ b/modules/juce_audio_basics/midi/juce_MidiRPN.h @@ -95,14 +95,13 @@ private: //============================================================================== struct ChannelState { - ChannelState() noexcept; bool handleController (int channel, int controllerNumber, int value, MidiRPNMessage&) noexcept; void resetValue() noexcept; bool sendIfReady (int channel, MidiRPNMessage&) noexcept; - uint8 parameterMSB, parameterLSB, valueMSB, valueLSB; - bool isNRPN; + uint8 parameterMSB = 0xff, parameterLSB = 0xff, valueMSB = 0xff, valueLSB = 0xff; + bool isNRPN = false; }; //============================================================================== diff --git a/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp index 175a96ee37..a4775f64de 100644 --- a/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp @@ -42,7 +42,8 @@ namespace OggVorbisNamespace "-Wredundant-decls", "-Wmisleading-indentation", "-Wmissing-prototypes", - "-Wcast-align") + "-Wcast-align", + "-Wmaybe-uninitialized") JUCE_BEGIN_NO_SANITIZE ("undefined") #include "oggvorbis/vorbisenc.h" diff --git a/modules/juce_audio_processors/format_types/juce_VST3Headers.h b/modules/juce_audio_processors/format_types/juce_VST3Headers.h index b599f03e72..148e7bfd1a 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3Headers.h +++ b/modules/juce_audio_processors/format_types/juce_VST3Headers.h @@ -59,7 +59,8 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-copy-dtor", "-Wmissing-prototypes", "-Wtype-limits", "-Wcpp", - "-W#warnings") + "-W#warnings", + "-Wmaybe-uninitialized") #undef DEVELOPMENT #define DEVELOPMENT 0 // This avoids a Clang warning in Steinberg code about unused values diff --git a/modules/juce_box2d/juce_box2d.cpp b/modules/juce_box2d/juce_box2d.cpp index 54a8af9855..69f3aec214 100644 --- a/modules/juce_box2d/juce_box2d.cpp +++ b/modules/juce_box2d/juce_box2d.cpp @@ -35,7 +35,8 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wconversion", "-Wswitch-enum", "-Wswitch-default", "-Wunused-but-set-variable", - "-Wzero-as-null-pointer-constant") + "-Wzero-as-null-pointer-constant", + "-Wmaybe-uninitialized") #include diff --git a/modules/juce_box2d/juce_box2d.h b/modules/juce_box2d/juce_box2d.h index c698be764d..ce66ea6ef0 100644 --- a/modules/juce_box2d/juce_box2d.h +++ b/modules/juce_box2d/juce_box2d.h @@ -52,7 +52,8 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wconversion", "-Wshadow-field", "-Wzero-as-null-pointer-constant", "-Wsign-conversion", - "-Wdeprecated") + "-Wdeprecated", + "-Wmaybe-uninitialized") #include #include diff --git a/modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h b/modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h index 50aa57d50e..9e6461f756 100644 --- a/modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h +++ b/modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h @@ -104,7 +104,7 @@ struct CppTokeniserFunctions static int parseIdentifier (Iterator& source) noexcept { int tokenLength = 0; - String::CharPointerType::CharType possibleIdentifier[100]; + String::CharPointerType::CharType possibleIdentifier[100] = {}; String::CharPointerType possible (possibleIdentifier); while (isIdentifierBody (source.peekNextChar())) diff --git a/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp b/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp index 16461918ed..36cebfcd2a 100644 --- a/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp +++ b/modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp @@ -71,7 +71,7 @@ struct LuaTokeniserFunctions static int parseIdentifier (Iterator& source) noexcept { int tokenLength = 0; - String::CharPointerType::CharType possibleIdentifier[100]; + String::CharPointerType::CharType possibleIdentifier[100] = {}; String::CharPointerType possible (possibleIdentifier); while (CppTokeniserFunctions::isIdentifierBody (source.peekNextChar()))