diff --git a/lib/Frontend/CompilerInstance.cpp b/lib/Frontend/CompilerInstance.cpp
index 76773e4..e2bb0f2 100644
--- a/lib/Frontend/CompilerInstance.cpp
+++ b/lib/Frontend/CompilerInstance.cpp
@@ -8,6 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/Frontend/CompilerInstance.h"
+#include "clang/Sema/Sema.h"
 #include "clang/AST/ASTConsumer.h"
 #include "clang/AST/ASTContext.h"
 #include "clang/Basic/Diagnostic.h"
@@ -41,6 +42,7 @@
 }
 
 CompilerInstance::~CompilerInstance() {
+  TheSema.reset();
 }
 
 void CompilerInstance::setLLVMContext(llvm::LLVMContext *Value) {
@@ -79,6 +81,10 @@
   Context.reset(Value);
 }
 
+void CompilerInstance::setSema(Sema *S) {
+  TheSema.reset(S);
+}
+
 void CompilerInstance::setASTConsumer(ASTConsumer *Value) {
   Consumer.reset(Value);
 }
@@ -362,6 +368,12 @@
     return new CIndexCodeCompleteConsumer(ShowMacros, ShowCodePatterns, OS);
 }
 
+void CompilerInstance::createSema(bool CompleteTranslationUnit,
+                                  CodeCompleteConsumer *CompletionConsumer) {
+  TheSema.reset(new Sema(getPreprocessor(), getASTContext(), getASTConsumer(),
+                         CompleteTranslationUnit, CompletionConsumer));
+}
+
 // Output Files
 
 void CompilerInstance::addOutputFile(llvm::StringRef Path,
