Index: lib/Sema/SemaDeclCXX.cpp
===================================================================
--- lib/Sema/SemaDeclCXX.cpp	(revision 214301)
+++ lib/Sema/SemaDeclCXX.cpp	(working copy)
@@ -5945,7 +5945,12 @@
       if (!MD->isVirtual())
         continue;
       // If the method we are checking overrides a method from its base
-      // don't warn about the other overloaded methods.
+      // don't warn about the other overloaded methods. This purposefully
+      // differs from GCC's behavior regarding overloads (not overrides) that
+      // are hidden. When a function would be a viable overload were it visible,
+      // the declaration itself is not problematic. It only becomes a problem
+      // when the call site would select a different function from the base
+      // class, were it visible.
       if (!Data.S->IsOverload(Data.Method, MD, false))
         return true;
       // Collect the overload only if its hidden.
