diff --git a/llvm/lib/Support/VirtualFileSystem.cpp b/llvm/lib/Support/VirtualFileSystem.cpp
index eeac883..e8b0435 100644
--- a/llvm/lib/Support/VirtualFileSystem.cpp
+++ b/llvm/lib/Support/VirtualFileSystem.cpp
@@ -132,8 +132,7 @@
 }
 
 std::error_code FileSystem::getRealPath(const Twine &Path,
-                                        SmallVectorImpl<char> &Output,
-                                        bool ExpandTilde) const {
+                                        SmallVectorImpl<char> &Output) const {
   return errc::operation_not_permitted;
 }
 
@@ -239,8 +238,8 @@
   llvm::ErrorOr<std::string> getCurrentWorkingDirectory() const override;
   std::error_code setCurrentWorkingDirectory(const Twine &Path) override;
   std::error_code isLocal(const Twine &Path, bool &Result) override;
-  std::error_code getRealPath(const Twine &Path, SmallVectorImpl<char> &Output,
-                              bool ExpandTilde = false) const override;
+  std::error_code getRealPath(const Twine &Path,
+                              SmallVectorImpl<char> &Output) const override;
 
 private:
   mutable std::mutex CWDMutex;
@@ -298,9 +297,9 @@
   return llvm::sys::fs::is_local(Path, Result);
 }
 
-std::error_code RealFileSystem::getRealPath(const Twine &Path,
-                                            SmallVectorImpl<char> &Output,
-                                            bool ExpandTilde) const {
+std::error_code
+RealFileSystem::getRealPath(const Twine &Path,
+                            SmallVectorImpl<char> &Output) const {
   return llvm::sys::fs::real_path(Path, Output);
 }
 
@@ -394,12 +393,12 @@
   return errc::no_such_file_or_directory;
 }
 
-std::error_code OverlayFileSystem::getRealPath(const Twine &Path,
-                                               SmallVectorImpl<char> &Output,
-                                               bool ExpandTilde) const {
+std::error_code
+OverlayFileSystem::getRealPath(const Twine &Path,
+                               SmallVectorImpl<char> &Output) const {
   for (auto &FS : FSList)
     if (FS->exists(Path))
-      return FS->getRealPath(Path, Output, ExpandTilde);
+      return FS->getRealPath(Path, Output);
   return errc::no_such_file_or_directory;
 }
 
@@ -917,9 +916,9 @@
   return {};
 }
 
-std::error_code InMemoryFileSystem::getRealPath(const Twine &Path,
-                                                SmallVectorImpl<char> &Output,
-                                                bool ExpandTilde) const {
+std::error_code
+InMemoryFileSystem::getRealPath(const Twine &Path,
+                                SmallVectorImpl<char> &Output) const {
   auto CWD = getCurrentWorkingDirectory();
   if (!CWD || CWD->empty())
     return errc::operation_not_permitted;
