Apply changes to migrate to LLVM Mar 6th 2011.

- API for name mangling. (Changing from non-public APIs to the
  public one)

- API changes for clang::Diagnostic::getNumErrors ->
  clang::Diagnostic::hasErrorOccurred

- API changes for clang::CharUnits and Quantity type.

- API changes libLLVMSystem -> libLLVMSupport.

- Change clang::Token::eom -> clang::Token::eod.

- Remove SourceRange parameter for DeclRefExpr::Create and
  MemberExpr::Create.

- Add const qualifier for several unsafe type cast.
diff --git a/slang_rs_context.h b/slang_rs_context.h
index 251790c..91b1aa1 100644
--- a/slang_rs_context.h
+++ b/slang_rs_context.h
@@ -23,8 +23,9 @@
 #include <string>
 
 #include "clang/Lex/Preprocessor.h"
-#include "Mangle.h"
+#include "clang/AST/Mangle.h"
 
+#include "llvm/ADT/OwningPtr.h"
 #include "llvm/ADT/StringSet.h"
 #include "llvm/ADT/StringMap.h"
 
@@ -79,7 +80,7 @@
   std::string mReflectJavaPathName;
 
   int version;
-  clang::CodeGen::MangleContext &mMangleCtx;
+  llvm::OwningPtr<clang::MangleContext> mMangleCtx;
 
   bool processExportVar(const clang::VarDecl *VD);
   bool processExportFunc(const clang::FunctionDecl *FD);
@@ -98,8 +99,8 @@
 
   inline clang::Preprocessor &getPreprocessor() const { return mPP; }
   inline clang::ASTContext &getASTContext() const { return mCtx; }
-  inline clang::CodeGen::MangleContext &getMangleContext() const {
-    return mMangleCtx;
+  inline clang::MangleContext &getMangleContext() const {
+    return *mMangleCtx;
   }
   inline const llvm::TargetData *getTargetData() const { return mTargetData; }
   inline llvm::LLVMContext &getLLVMContext() const { return mLLVMContext; }