As of today, LLVM will be built with the -Woverloaded-virtual option
turned on. This means that warnings will be generated for ambiguous
overloads of C++ sub-classes. Typically this means you forgot to
override an overloaded virtual in a subclass. Currently, LLVM is
"overloaded virtual" clean. We intend to keep it that way. If you are
modifying LLVM and start to see warning messages like the following:

AliasAnalysis.h:241: warning: `virtual llvm::AliasAnalysis::ModRefResult llvm::AliasAnalysis::getModRefInfo(llvm::CallSite, llvm::CallSite)' was hidden
Steensgaard.cpp:68: warning: by `virtual llvm::AliasAnalysis::ModRefResult <unnamed>::Steens::getModRefInfo(llvm::CallSite, llvm::Value*, unsigned int)'

then you need to fix it before committing. The fix usually involves:

(a) renaming the overloads so they aren't overloaded (best option)
(b) providing definitions for all overloaded virtuals in all subclasses

For further details, please see PR387.