Extract ABI-specific parts of MangleContext into separate classes

Reviewed at http://llvm-reviews.chandlerc.com/D1807

llvm-svn: 191878
diff --git a/clang/lib/CodeGen/MicrosoftVBTables.cpp b/clang/lib/CodeGen/MicrosoftVBTables.cpp
index 4523aa8..f901eb5 100644
--- a/clang/lib/CodeGen/MicrosoftVBTables.cpp
+++ b/clang/lib/CodeGen/MicrosoftVBTables.cpp
@@ -170,7 +170,8 @@
 
   SmallString<256> OutName;
   llvm::raw_svector_ostream Out(OutName);
-  MangleContext &Mangler = CGM.getCXXABI().getMangleContext();
+  MicrosoftMangleContext &Mangler =
+      cast<MicrosoftMangleContext>(CGM.getCXXABI().getMangleContext());
   Mangler.mangleCXXVBTable(MostDerived, BasePath, Out);
   Out.flush();
   StringRef Name = OutName.str();