The Intel C++ compiler is generating some additional warnings:
Conflict with Button::keyStateChanged and Component::keyStateChanged
src\gui\components\lookandfeel\../controls/../layout/../buttons/juce_Button.h(447): warning #1125: function "juce::Component::keyStateChanged(bool)" is hidden by "juce::Button::keyStateChanged" -- virtual function override intended?
1> bool keyStateChanged (bool isKeyDown, Component* originatingComponent);
Because the function names are the same but the signatures are different:
virtual bool Component::keyStateChanged (bool isKeyDown);
bool Button::keyStateChanged (bool isKeyDown, Component* originatingComponent);
Suggest to rename the Button routine to keyStateChangedInternal or something.
Next warning is a little more interesting
\src\gui\graphics\drawables\juce_DrawableShape.h(155): warning #1125: function "juce::Component::hitTest(int, int)" is hidden by "juce::DrawableShape::hitTest" -- virtual function override intended?
1> bool hitTest (int x, int y) const;
Because DrawableShape::hitTest() is identical to Component::hitTest() except that it is non-const and therefore, not considered an override. Not sure what you want to do here:
bool DrawableShape::hitTest (int x, int y) const;
virtual bool Component::hitTest (int x, int y);
Then we have componentMovedOrResized with different signatures in various classes:
src\gui\components\juce_ModalComponentManager.cpp(52): warning #1125: function "juce::ComponentListener::componentMovedOrResized(juce::Component &, bool, bool)" is hidden by "juce::ModalComponentManager::ModalItem::componentMovedOrResized" -- virtual function override intended?
1> void componentMovedOrResized (bool wasMoved, bool wasResized);
These are the different versions:
virtual ComponentListener::componentMovedOrResized (Component& component,
bool wasMoved,
bool wasResized);
virtual void ComponentMovementWatcher::componentMovedOrResized (bool wasMoved, bool wasResized) = 0;
void ModalComponentManager::componentMovedOrResized (bool, bool) {}
and
virtual void ComponentListener::componentVisibilityChanged (Component& component);
virtual void ComponentMovementWatcher::componentVisibilityChanged() = 0;
void ModalComponentManager::componentVisibilityChanged();
More name / signature conflicts
virtual void Listener::valueChanged (Value& value) = 0;
virtual void Slider::valueChanged();
void ProcessorParameterPropertyComp::valueChanged();
There are also a couple of places where unsigned size_t are being compared >=0 (which is always true), not sure if you care about those.