[Lldb-commits] [lldb] r297139 - Revert "Use LLVM for all stat-related functionality."

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Tue Mar 7 10:25:29 PST 2017


I actually think there should be a strong separation between FileSpec and
the underlying FileSystem, because a FileSpec doesn't necessarily represent
something on the local file system, and we shouldn't give off the false
impression that it does.

I don't follow regarding the global function though.  Do you mean less
one-time churn for doing the initial switch, or less continuous churn
whenever the underlying API changes?  Because If we don't go through the
FileSpec API, I don't follow how a global function in LLDB leads to less
churn in either case.

In any case, I really think we need as little code in LLDB as possible.
Every bit of code in LLDB is just an additional thing that is (most likely)
insufficiently tested, and a one-line wrapper just so that it's in the LLDB
namespace helps nobody.

On Tue, Mar 7, 2017 at 10:17 AM Sean Callanan via lldb-commits <
lldb-commits at lists.llvm.org> wrote:

> Thanks, Pavel.
> I think if we do this again we should indirect the new API through the
> LLDB FileSpec API or at least a global function somewhere in LLDB, so that
> we can change implementations without having to touch so much source code.
>
> Sean
>
> > On Mar 7, 2017, at 5:19 AM, Pavel Labath via lldb-commits <
> lldb-commits at lists.llvm.org> wrote:
> >
> > Author: labath
> > Date: Tue Mar  7 07:19:15 2017
> > New Revision: 297139
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=297139&view=rev
> > Log:
> > Revert "Use LLVM for all stat-related functionality."
> >
> > this reverts r297116 because it breaks the unittests and
> > TestCompDirSymlink. The ModuleCache unit test is trivially fixable, but
> > the CompDirSymlink failure is a symptom of a deeper problem: llvm's stat
> > functionality is not a drop-in replacement for lldb's. The former is
> > based on stat(2) (which does symlink resolution), while the latter is
> > based on lstat(2) (which does not).
> >
> > This also reverts subsequent build fixes (r297128, r297120, 297117) and
> > r297119 (Remove FileSpec dependency on FileSystem) which builds on top
> > of this.
> >
> > Modified:
> >    lldb/trunk/include/lldb/Host/FileSpec.h
> >    lldb/trunk/source/API/SBPlatform.cpp
> >    lldb/trunk/source/Commands/CommandCompletions.cpp
> >    lldb/trunk/source/Commands/CommandObjectTarget.cpp
> >    lldb/trunk/source/Core/Debugger.cpp
> >    lldb/trunk/source/Core/FileSpecList.cpp
> >    lldb/trunk/source/Core/Module.cpp
> >    lldb/trunk/source/Core/ModuleList.cpp
> >    lldb/trunk/source/Core/PluginManager.cpp
> >    lldb/trunk/source/Host/common/FileSpec.cpp
> >    lldb/trunk/source/Host/common/MonitoringProcessLauncher.cpp
> >    lldb/trunk/source/Host/common/Symbols.cpp
> >    lldb/trunk/source/Host/macosx/Host.mm
> >    lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm
> >    lldb/trunk/source/Host/macosx/Symbols.cpp
> >    lldb/trunk/source/Host/posix/FileSystem.cpp
> >
> lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.cpp
> >
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.cpp
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.h
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h
> >    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformiOSSimulator.cpp
> >    lldb/trunk/source/Plugins/Process/Darwin/NativeProcessDarwin.cpp
> >    lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
> >    lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp
> >
> lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
> >    lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
> >    lldb/trunk/source/Target/ModuleCache.cpp
> >    lldb/trunk/source/Target/Platform.cpp
> >    lldb/trunk/source/Target/TargetList.cpp
> >
> > Modified: lldb/trunk/include/lldb/Host/FileSpec.h
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/FileSpec.h?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/include/lldb/Host/FileSpec.h (original)
> > +++ lldb/trunk/include/lldb/Host/FileSpec.h Tue Mar  7 07:19:15 2017
> > @@ -22,7 +22,6 @@
> > #include "lldb/lldb-private.h"
> >
> > #include "llvm/ADT/Triple.h"
> > -#include "llvm/Support/FileSystem.h"
> > #include "llvm/Support/FormatVariadic.h"
> >
> > namespace lldb_private {
> > @@ -47,6 +46,17 @@ namespace lldb_private {
> > //----------------------------------------------------------------------
> > class FileSpec {
> > public:
> > +  typedef enum FileType {
> > +    eFileTypeInvalid = -1,
> > +    eFileTypeUnknown = 0,
> > +    eFileTypeDirectory,
> > +    eFileTypePipe,
> > +    eFileTypeRegular,
> > +    eFileTypeSocket,
> > +    eFileTypeSymbolicLink,
> > +    eFileTypeOther
> > +  } FileType;
> > +
> >   enum PathSyntax {
> >     ePathSyntaxPosix,
> >     ePathSyntaxWindows,
> > @@ -445,6 +455,8 @@ public:
> >   //------------------------------------------------------------------
> >   ConstString GetFileNameStrippingExtension() const;
> >
> > +  FileType GetFileType() const;
> > +
> >   //------------------------------------------------------------------
> >   /// Return the current permissions of the path.
> >   ///
> > @@ -459,6 +471,20 @@ public:
> >   //------------------------------------------------------------------
> >   uint32_t GetPermissions() const;
> >
> > +  bool IsDirectory() const {
> > +    return GetFileType() == FileSpec::eFileTypeDirectory;
> > +  }
> > +
> > +  bool IsPipe() const { return GetFileType() ==
> FileSpec::eFileTypePipe; }
> > +
> > +  bool IsRegularFile() const {
> > +    return GetFileType() == FileSpec::eFileTypeRegular;
> > +  }
> > +
> > +  bool IsSocket() const { return GetFileType() ==
> FileSpec::eFileTypeSocket; }
> > +
> > +  bool IsSymbolicLink() const;
> > +
> >   //------------------------------------------------------------------
> >   /// Get the memory cost of this object.
> >   ///
> > @@ -570,7 +596,7 @@ public:
> >   };
> >
> >   typedef EnumerateDirectoryResult (*EnumerateDirectoryCallbackType)(
> > -      void *baton, llvm::sys::fs::file_type file_type, const FileSpec
> &spec);
> > +      void *baton, FileType file_type, const FileSpec &spec);
> >
> >   static EnumerateDirectoryResult
> >   EnumerateDirectory(llvm::StringRef dir_path, bool find_directories,
> > @@ -578,8 +604,8 @@ public:
> >                      EnumerateDirectoryCallbackType callback,
> >                      void *callback_baton);
> >
> > -  typedef std::function<EnumerateDirectoryResult(
> > -      llvm::sys::fs::file_type file_type, const FileSpec &spec)>
> > +  typedef std::function<EnumerateDirectoryResult(FileType file_type,
> > +                                                 const FileSpec &spec)>
> >       DirectoryCallback;
> >
> >   static EnumerateDirectoryResult
> >
> > Modified: lldb/trunk/source/API/SBPlatform.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBPlatform.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/API/SBPlatform.cpp (original)
> > +++ lldb/trunk/source/API/SBPlatform.cpp Tue Mar  7 07:19:15 2017
> > @@ -19,8 +19,6 @@
> > #include "lldb/Target/Target.h"
> > #include "lldb/Utility/Error.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > #include <functional>
> >
> > using namespace lldb;
> > @@ -365,7 +363,7 @@ SBError SBPlatform::Put(SBFileSpec &src,
> >     if (src.Exists()) {
> >       uint32_t permissions = src.ref().GetPermissions();
> >       if (permissions == 0) {
> > -        if (llvm::sys::fs::is_directory(src.ref().GetPath()))
> > +        if (src.ref().GetFileType() == FileSpec::eFileTypeDirectory)
> >           permissions = eFilePermissionsDirectoryDefault;
> >         else
> >           permissions = eFilePermissionsFileDefault;
> >
> > Modified: lldb/trunk/source/Commands/CommandCompletions.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandCompletions.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Commands/CommandCompletions.cpp (original)
> > +++ lldb/trunk/source/Commands/CommandCompletions.cpp Tue Mar  7
> 07:19:15 2017
> > @@ -33,7 +33,6 @@
> > #include "lldb/Utility/CleanUp.h"
> >
> > #include "llvm/ADT/SmallString.h"
> > -#include "llvm/Support/FileSystem.h"
> >
> > using namespace lldb_private;
> >
> > @@ -110,7 +109,7 @@ typedef struct DiskFilesOrDirectoriesBat
> > } DiskFilesOrDirectoriesBaton;
> >
> > FileSpec::EnumerateDirectoryResult
> > -DiskFilesOrDirectoriesCallback(void *baton, llvm::sys::fs::file_type
> file_type,
> > +DiskFilesOrDirectoriesCallback(void *baton, FileSpec::FileType
> file_type,
> >                                const FileSpec &spec) {
> >   const char *name = spec.GetFilename().AsCString();
> >
> > @@ -139,10 +138,10 @@ DiskFilesOrDirectoriesCallback(void *bat
> >     strcpy(end_ptr, name);
> >
> >     bool isa_directory = false;
> > -    if (file_type == llvm::sys::fs::file_type::directory_file)
> > +    if (file_type == FileSpec::eFileTypeDirectory)
> >       isa_directory = true;
> > -    else if (file_type == llvm::sys::fs::file_type::symlink_file) {
> > -      if (llvm::sys::fs::is_directory(partial_name_copy))
> > +    else if (file_type == FileSpec::eFileTypeSymbolicLink) {
> > +      if (FileSpec(partial_name_copy, false).IsDirectory())
> >         isa_directory = true;
> >     }
> >
> >
> > Modified: lldb/trunk/source/Commands/CommandObjectTarget.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectTarget.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Commands/CommandObjectTarget.cpp (original)
> > +++ lldb/trunk/source/Commands/CommandObjectTarget.cpp Tue Mar  7
> 07:19:15 2017
> > @@ -50,8 +50,6 @@
> > #include "lldb/Target/Thread.h"
> > #include "lldb/Target/ThreadSpec.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > // C Includes
> > // C++ Includes
> > #include <cerrno>
> > @@ -4138,21 +4136,20 @@ protected:
> >         module_sp->SetSymbolFileFileSpec(FileSpec());
> >       }
> >
> > -      namespace fs = llvm::sys::fs;
> >       if (module_spec.GetUUID().IsValid()) {
> >         StreamString ss_symfile_uuid;
> >         module_spec.GetUUID().Dump(&ss_symfile_uuid);
> >         result.AppendErrorWithFormat(
> >             "symbol file '%s' (%s) does not match any existing
> module%s\n",
> >             symfile_path, ss_symfile_uuid.GetData(),
> > -            !fs::is_regular_file(symbol_fspec.GetPath())
> > +            (symbol_fspec.GetFileType() != FileSpec::eFileTypeRegular)
> >                 ? "\n       please specify the full path to the symbol
> file"
> >                 : "");
> >       } else {
> >         result.AppendErrorWithFormat(
> >             "symbol file '%s' does not match any existing module%s\n",
> >             symfile_path,
> > -            !fs::is_regular_file(symbol_fspec.GetPath())
> > +            (symbol_fspec.GetFileType() != FileSpec::eFileTypeRegular)
> >                 ? "\n       please specify the full path to the symbol
> file"
> >                 : "");
> >       }
> >
> > Modified: lldb/trunk/source/Core/Debugger.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Debugger.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Core/Debugger.cpp (original)
> > +++ lldb/trunk/source/Core/Debugger.cpp Tue Mar  7 07:19:15 2017
> > @@ -557,7 +557,7 @@ bool Debugger::LoadPlugin(const FileSpec
> > }
> >
> > static FileSpec::EnumerateDirectoryResult
> > -LoadPluginCallback(void *baton, llvm::sys::fs::file_type ft,
> > +LoadPluginCallback(void *baton, FileSpec::FileType file_type,
> >                    const FileSpec &file_spec) {
> >   Error error;
> >
> > @@ -569,13 +569,13 @@ LoadPluginCallback(void *baton, llvm::sy
> >
> >   Debugger *debugger = (Debugger *)baton;
> >
> > -  namespace fs = llvm::sys::fs;
> >   // If we have a regular file, a symbolic link or unknown file type, try
> >   // and process the file. We must handle unknown as sometimes the
> directory
> >   // enumeration might be enumerating a file system that doesn't have
> correct
> >   // file type information.
> > -  if (ft == fs::file_type::regular_file || ft ==
> fs::file_type::symlink_file ||
> > -      ft == fs::file_type::type_unknown) {
> > +  if (file_type == FileSpec::eFileTypeRegular ||
> > +      file_type == FileSpec::eFileTypeSymbolicLink ||
> > +      file_type == FileSpec::eFileTypeUnknown) {
> >     FileSpec plugin_file_spec(file_spec);
> >     plugin_file_spec.ResolvePath();
> >
> > @@ -588,9 +588,9 @@ LoadPluginCallback(void *baton, llvm::sy
> >     debugger->LoadPlugin(plugin_file_spec, plugin_load_error);
> >
> >     return FileSpec::eEnumerateDirectoryResultNext;
> > -  } else if (ft == fs::file_type::directory_file ||
> > -             ft == fs::file_type::symlink_file ||
> > -             ft == fs::file_type::type_unknown) {
> > +  } else if (file_type == FileSpec::eFileTypeUnknown ||
> > +             file_type == FileSpec::eFileTypeDirectory ||
> > +             file_type == FileSpec::eFileTypeSymbolicLink) {
> >     // Try and recurse into anything that a directory or symbolic link.
> >     // We must also do this for unknown as sometimes the directory
> enumeration
> >     // might be enumerating a file system that doesn't have correct file
> type
> >
> > Modified: lldb/trunk/source/Core/FileSpecList.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/FileSpecList.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Core/FileSpecList.cpp (original)
> > +++ lldb/trunk/source/Core/FileSpecList.cpp Tue Mar  7 07:19:15 2017
> > @@ -16,7 +16,6 @@
> > // Other libraries and framework includes
> > // Project includes
> > #include "lldb/Utility/Stream.h"
> > -#include "llvm/Support/FileSystem.h"
> >
> > using namespace lldb_private;
> > using namespace std;
> > @@ -151,23 +150,32 @@ size_t FileSpecList::GetFilesMatchingPar
> >                                                  FileSpecList &matches) {
> > #if 0 // FIXME: Just sketching...
> >     matches.Clear();
> > -    using namespace llvm::sys::fs;
> > -    file_status stats;
> > -    if (status(path, stats))
> > -      return 0;
> > -    if (exists(stats)) {
> > -      if (stats.type() == file_type::symlink_file) {
> > -        // Shouldn't there be a method that realpath's a file?
> > -      }
> > -      if (is_regular_file(stats) || (is_directory(stats) && dir_okay)) {
> > -        matches.Append(FileSpec(path));
> > -        return 1;
> > -      } else if (is_directory(stats)) {
> > -        // Fill the match list with all the files in the directory:
> > -      } else {
> > -        return 0;
> > -      }
> > -    } else {
> > +    FileSpec path_spec = FileSpec (path);
> > +    if (path_spec.Exists ())
> > +    {
> > +        FileSpec::FileType type = path_spec.GetFileType();
> > +        if (type == FileSpec::eFileTypeSymbolicLink)
> > +            // Shouldn't there be a Resolve on a file spec that
> real-path's it?
> > +        {
> > +        }
> > +
> > +        if (type == FileSpec::eFileTypeRegular
> > +            || (type == FileSpec::eFileTypeDirectory && dir_okay))
> > +        {
> > +            matches.Append (path_spec);
> > +            return 1;
> > +        }
> > +        else if (type == FileSpec::eFileTypeDirectory)
> > +        {
> > +            // Fill the match list with all the files in the directory:
> > +        }
> > +        else
> > +        {
> > +            return 0;
> > +        }
> > +    }
> > +    else
> > +    {
> >         ConstString dir_name = path_spec.GetDirectory();
> >         ConstString file_name = GetFilename();
> >         if (dir_name == nullptr)
> >
> > Modified: lldb/trunk/source/Core/Module.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Module.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Core/Module.cpp (original)
> > +++ lldb/trunk/source/Core/Module.cpp Tue Mar  7 07:19:15 2017
> > @@ -12,7 +12,6 @@
> > // C Includes
> > // C++ Includes
> > // Other libraries and framework includes
> > -#include "llvm/Support/FileSystem.h"
> > #include "llvm/Support/Signals.h"
> > #include "llvm/Support/raw_os_ostream.h"
> >
> > @@ -1440,7 +1439,7 @@ void Module::SetSymbolFileFileSpec(const
> >         // ("/tmp/a.out.dSYM/Contents/Resources/DWARF/a.out"). So we
> need to
> >         // check this
> >
> > -        if (llvm::sys::fs::is_directory(file.GetPath())) {
> > +        if (file.IsDirectory()) {
> >           std::string new_path(file.GetPath());
> >           std::string old_path(obj_file->GetFileSpec().GetPath());
> >           if (old_path.find(new_path) == 0) {
> >
> > Modified: lldb/trunk/source/Core/ModuleList.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ModuleList.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Core/ModuleList.cpp (original)
> > +++ lldb/trunk/source/Core/ModuleList.cpp Tue Mar  7 07:19:15 2017
> > @@ -26,7 +26,6 @@
> > #include "lldb/Symbol/VariableList.h"
> > #include "lldb/Utility/Log.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > #include "llvm/Support/Threading.h"
> >
> > using namespace lldb;
> > @@ -767,8 +766,7 @@ Error ModuleList::GetSharedModule(const
> >       auto search_path_spec =
> module_search_paths_ptr->GetFileSpecAtIndex(idx);
> >       if (!search_path_spec.ResolvePath())
> >         continue;
> > -      namespace fs = llvm::sys::fs;
> > -      if (!fs::is_directory(search_path_spec.GetPath()))
> > +      if (!search_path_spec.Exists() || !search_path_spec.IsDirectory())
> >         continue;
> >       search_path_spec.AppendPathComponent(
> >           module_spec.GetFileSpec().GetFilename().AsCString());
> >
> > Modified: lldb/trunk/source/Core/PluginManager.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/PluginManager.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Core/PluginManager.cpp (original)
> > +++ lldb/trunk/source/Core/PluginManager.cpp Tue Mar  7 07:19:15 2017
> > @@ -79,18 +79,18 @@ template <typename FPtrTy> static FPtrTy
> > }
> >
> > static FileSpec::EnumerateDirectoryResult
> > -LoadPluginCallback(void *baton, llvm::sys::fs::file_type ft,
> > +LoadPluginCallback(void *baton, FileSpec::FileType file_type,
> >                    const FileSpec &file_spec) {
> >   //    PluginManager *plugin_manager = (PluginManager *)baton;
> >   Error error;
> >
> > -  namespace fs = llvm::sys::fs;
> >   // If we have a regular file, a symbolic link or unknown file type, try
> >   // and process the file. We must handle unknown as sometimes the
> directory
> >   // enumeration might be enumerating a file system that doesn't have
> correct
> >   // file type information.
> > -  if (ft == fs::file_type::regular_file || ft ==
> fs::file_type::symlink_file ||
> > -      ft == fs::file_type::type_unknown) {
> > +  if (file_type == FileSpec::eFileTypeRegular ||
> > +      file_type == FileSpec::eFileTypeSymbolicLink ||
> > +      file_type == FileSpec::eFileTypeUnknown) {
> >     FileSpec plugin_file_spec(file_spec);
> >     plugin_file_spec.ResolvePath();
> >
> > @@ -135,8 +135,9 @@ LoadPluginCallback(void *baton, llvm::sy
> >     }
> >   }
> >
> > -  if (ft == fs::file_type::directory_file ||
> > -      ft == fs::file_type::symlink_file || ft ==
> fs::file_type::type_unknown) {
> > +  if (file_type == FileSpec::eFileTypeUnknown ||
> > +      file_type == FileSpec::eFileTypeDirectory ||
> > +      file_type == FileSpec::eFileTypeSymbolicLink) {
> >     // Try and recurse into anything that a directory or symbolic link.
> >     // We must also do this for unknown as sometimes the directory
> enumeration
> >     // might be enumerating a file system that doesn't have correct file
> type
> >
> > Modified: lldb/trunk/source/Host/common/FileSpec.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/FileSpec.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Host/common/FileSpec.cpp (original)
> > +++ lldb/trunk/source/Host/common/FileSpec.cpp Tue Mar  7 07:19:15 2017
> > @@ -27,6 +27,7 @@
> >
> > #include "lldb/Core/StringList.h"
> > #include "lldb/Host/FileSpec.h"
> > +#include "lldb/Host/FileSystem.h"
> > #include "lldb/Utility/CleanUp.h"
> > #include "lldb/Utility/RegularExpression.h"
> > #include "lldb/Utility/Stream.h"
> > @@ -44,18 +45,10 @@ using namespace lldb_private;
> >
> > namespace {
> >
> > -static constexpr FileSpec::PathSyntax GetNativeSyntax() {
> > -#if defined(LLVM_ON_WIN32)
> > -  return FileSpec::ePathSyntaxWindows;
> > -#else
> > -  return FileSpec::ePathSyntaxPosix;
> > -#endif
> > -}
> > -
> > bool PathSyntaxIsPosix(FileSpec::PathSyntax syntax) {
> >   return (syntax == FileSpec::ePathSyntaxPosix ||
> >           (syntax == FileSpec::ePathSyntaxHostNative &&
> > -           GetNativeSyntax() == FileSpec::ePathSyntaxPosix));
> > +           FileSystem::GetNativePathSyntax() ==
> FileSpec::ePathSyntaxPosix));
> > }
> >
> > const char *GetPathSeparators(FileSpec::PathSyntax syntax) {
> > @@ -91,6 +84,13 @@ void Denormalize(llvm::SmallVectorImpl<c
> >   std::replace(path.begin(), path.end(), '/', '\\');
> > }
> >
> > +bool GetFileStats(const FileSpec *file_spec, struct stat *stats_ptr) {
> > +  char resolved_path[PATH_MAX];
> > +  if (file_spec->GetPath(resolved_path, sizeof(resolved_path)))
> > +    return FileSystem::Stat(resolved_path, stats_ptr) == 0;
> > +  return false;
> > +}
> > +
> > size_t FilenamePos(llvm::StringRef str, FileSpec::PathSyntax syntax) {
> >   if (str.size() == 2 && IsPathSeparator(str[0], syntax) && str[0] ==
> str[1])
> >     return 0;
> > @@ -273,7 +273,7 @@ void FileSpec::Resolve(llvm::SmallVector
> >   }
> > }
> >
> > -FileSpec::FileSpec() : m_syntax(GetNativeSyntax()) {}
> > +FileSpec::FileSpec() : m_syntax(FileSystem::GetNativePathSyntax()) {}
> >
> > //------------------------------------------------------------------
> > // Default constructor that can take an optional full path to a
> > @@ -336,7 +336,9 @@ void FileSpec::SetFile(llvm::StringRef p
> >   m_filename.Clear();
> >   m_directory.Clear();
> >   m_is_resolved = false;
> > -  m_syntax = (syntax == ePathSyntaxHostNative) ? GetNativeSyntax() :
> syntax;
> > +  m_syntax = (syntax == ePathSyntaxHostNative)
> > +                 ? FileSystem::GetNativePathSyntax()
> > +                 : syntax;
> >
> >   if (pathname.empty())
> >     return;
> > @@ -613,10 +615,16 @@ void FileSpec::Dump(Stream *s) const {
> > //------------------------------------------------------------------
> > // Returns true if the file exists.
> > //------------------------------------------------------------------
> > -bool FileSpec::Exists() const { return
> llvm::sys::fs::exists(GetPath()); }
> > +bool FileSpec::Exists() const {
> > +  struct stat file_stats;
> > +  return GetFileStats(this, &file_stats);
> > +}
> >
> > bool FileSpec::Readable() const {
> > -  return GetPermissions() & llvm::sys::fs::perms::all_read;
> > +  const uint32_t permissions = GetPermissions();
> > +  if (permissions & eFilePermissionsEveryoneR)
> > +    return true;
> > +  return false;
> > }
> >
> > bool FileSpec::ResolveExecutableLocation() {
> > @@ -669,21 +677,67 @@ bool FileSpec::ResolvePath() {
> > }
> >
> > uint64_t FileSpec::GetByteSize() const {
> > -  uint64_t Size = 0;
> > -  if (llvm::sys::fs::file_size(GetPath(), Size))
> > -    return 0;
> > -  return Size;
> > +  struct stat file_stats;
> > +  if (GetFileStats(this, &file_stats))
> > +    return file_stats.st_size;
> > +  return 0;
> > }
> >
> > FileSpec::PathSyntax FileSpec::GetPathSyntax() const { return m_syntax; }
> >
> > -uint32_t FileSpec::GetPermissions() const {
> > -  namespace fs = llvm::sys::fs;
> > -  fs::file_status st;
> > -  if (fs::status(GetPath(), st))
> > -    return fs::perms::perms_not_known;
> > +FileSpec::FileType FileSpec::GetFileType() const {
> > +  struct stat file_stats;
> > +  if (GetFileStats(this, &file_stats)) {
> > +    mode_t file_type = file_stats.st_mode & S_IFMT;
> > +    switch (file_type) {
> > +    case S_IFDIR:
> > +      return eFileTypeDirectory;
> > +    case S_IFREG:
> > +      return eFileTypeRegular;
> > +#ifndef _WIN32
> > +    case S_IFIFO:
> > +      return eFileTypePipe;
> > +    case S_IFSOCK:
> > +      return eFileTypeSocket;
> > +    case S_IFLNK:
> > +      return eFileTypeSymbolicLink;
> > +#endif
> > +    default:
> > +      break;
> > +    }
> > +    return eFileTypeUnknown;
> > +  }
> > +  return eFileTypeInvalid;
> > +}
> > +
> > +bool FileSpec::IsSymbolicLink() const {
> > +  char resolved_path[PATH_MAX];
> > +  if (!GetPath(resolved_path, sizeof(resolved_path)))
> > +    return false;
> > +
> > +#ifdef _WIN32
> > +  std::wstring wpath;
> > +  if (!llvm::ConvertUTF8toWide(resolved_path, wpath))
> > +    return false;
> > +  auto attrs = ::GetFileAttributesW(wpath.c_str());
> > +  if (attrs == INVALID_FILE_ATTRIBUTES)
> > +    return false;
> >
> > -  return st.permissions();
> > +  return (attrs & FILE_ATTRIBUTE_REPARSE_POINT);
> > +#else
> > +  struct stat file_stats;
> > +  if (::lstat(resolved_path, &file_stats) != 0)
> > +    return false;
> > +
> > +  return (file_stats.st_mode & S_IFMT) == S_IFLNK;
> > +#endif
> > +}
> > +
> > +uint32_t FileSpec::GetPermissions() const {
> > +  uint32_t file_permissions = 0;
> > +  if (*this)
> > +    FileSystem::GetFilePermissions(*this, file_permissions);
> > +  return file_permissions;
> > }
> >
> > //------------------------------------------------------------------
> > @@ -799,8 +853,7 @@ FileSpec::ForEachItemInDirectory(llvm::S
> >     }
> >
> >     do {
> > -      namespace fs = llvm::sys::fs;
> > -      fs::file_type ft = fs::file_type::type_unknown;
> > +      FileSpec::FileType file_type = eFileTypeUnknown;
> >       if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
> >         size_t len = wcslen(ffd.cFileName);
> >
> > @@ -810,11 +863,11 @@ FileSpec::ForEachItemInDirectory(llvm::S
> >         if (len == 2 && ffd.cFileName[0] == L'.' && ffd.cFileName[1] ==
> L'.')
> >           continue;
> >
> > -        ft = fs::file_type::directory_file;
> > +        file_type = eFileTypeDirectory;
> >       } else if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DEVICE) {
> > -        ft = fs::file_type::type_unknown;
> > +        file_type = eFileTypeOther;
> >       } else {
> > -        ft = fs::file_type::regular_file;
> > +        file_type = eFileTypeRegular;
> >       }
> >
> >       std::string fileName;
> > @@ -826,7 +879,7 @@ FileSpec::ForEachItemInDirectory(llvm::S
> >       // Don't resolve the file type or path
> >       FileSpec child_path_spec(child_path.data(), false);
> >
> > -      EnumerateDirectoryResult result = callback(ft, child_path_spec);
> > +      EnumerateDirectoryResult result = callback(file_type,
> child_path_spec);
> >
> >       switch (result) {
> >       case eEnumerateDirectoryResultNext:
> > @@ -887,38 +940,37 @@ FileSpec::ForEachItemInDirectory(llvm::S
> >             continue;
> >         }
> >
> > -        using namespace llvm::sys::fs;
> > -        file_type ft = file_type::type_unknown;
> > +        FileSpec::FileType file_type = eFileTypeUnknown;
> >
> >         switch (dp->d_type) {
> >         default:
> >         case DT_UNKNOWN:
> > -          ft = file_type::type_unknown;
> > +          file_type = eFileTypeUnknown;
> >           break;
> >         case DT_FIFO:
> > -          ft = file_type::fifo_file;
> > +          file_type = eFileTypePipe;
> >           break;
> >         case DT_CHR:
> > -          ft = file_type::character_file;
> > +          file_type = eFileTypeOther;
> >           break;
> >         case DT_DIR:
> > -          ft = file_type::directory_file;
> > +          file_type = eFileTypeDirectory;
> >           break;
> >         case DT_BLK:
> > -          ft = file_type::block_file;
> > +          file_type = eFileTypeOther;
> >           break;
> >         case DT_REG:
> > -          ft = file_type::regular_file;
> > +          file_type = eFileTypeRegular;
> >           break;
> >         case DT_LNK:
> > -          ft = file_type::symlink_file;
> > +          file_type = eFileTypeSymbolicLink;
> >           break;
> >         case DT_SOCK:
> > -          ft = file_type::socket_file;
> > +          file_type = eFileTypeSocket;
> >           break;
> > #if !defined(__OpenBSD__)
> >         case DT_WHT:
> > -          ft = file_type::type_unknown;
> > +          file_type = eFileTypeOther;
> >           break;
> > #endif
> >         }
> > @@ -933,7 +985,8 @@ FileSpec::ForEachItemInDirectory(llvm::S
> >         // Don't resolve the file type or path
> >         FileSpec child_path_spec(child_path, false);
> >
> > -        EnumerateDirectoryResult result = callback(ft, child_path_spec);
> > +        EnumerateDirectoryResult result =
> > +            callback(file_type, child_path_spec);
> >
> >         switch (result) {
> >         case eEnumerateDirectoryResultNext:
> > @@ -987,14 +1040,14 @@ FileSpec::EnumerateDirectory(llvm::Strin
> >                              void *callback_baton) {
> >   return ForEachItemInDirectory(
> >       dir_path,
> > -      [&find_directories, &find_files, &find_other, &callback,
> &callback_baton](
> > -          llvm::sys::fs::file_type file_type, const FileSpec
> &file_spec) {
> > +      [&find_directories, &find_files, &find_other, &callback,
> > +       &callback_baton](FileType file_type, const FileSpec &file_spec) {
> >         switch (file_type) {
> > -        case llvm::sys::fs::file_type::directory_file:
> > +        case FileType::eFileTypeDirectory:
> >           if (find_directories)
> >             return callback(callback_baton, file_type, file_spec);
> >           break;
> > -        case llvm::sys::fs::file_type::regular_file:
> > +        case FileType::eFileTypeRegular:
> >           if (find_files)
> >             return callback(callback_baton, file_type, file_spec);
> >           break;
> >
> > Modified: lldb/trunk/source/Host/common/MonitoringProcessLauncher.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/MonitoringProcessLauncher.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Host/common/MonitoringProcessLauncher.cpp
> (original)
> > +++ lldb/trunk/source/Host/common/MonitoringProcessLauncher.cpp Tue Mar
> 7 07:19:15 2017
> > @@ -17,8 +17,6 @@
> > #include "lldb/Utility/Error.h"
> > #include "lldb/Utility/Log.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > using namespace lldb;
> > using namespace lldb_private;
> >
> > @@ -40,8 +38,8 @@ MonitoringProcessLauncher::LaunchProcess
> >
> >   FileSpec exe_spec(resolved_info.GetExecutableFile());
> >
> > -  llvm::sys::fs::file_status stats;
> > -  if (status(exe_spec.GetPath(), stats) || !is_regular_file(stats)) {
> > +  FileSpec::FileType file_type = exe_spec.GetFileType();
> > +  if (file_type != FileSpec::eFileTypeRegular) {
> >     ModuleSpec module_spec(exe_spec, arch_spec);
> >     lldb::ModuleSP exe_module_sp;
> >     error =
> > @@ -54,7 +52,7 @@ MonitoringProcessLauncher::LaunchProcess
> >       exe_spec = exe_module_sp->GetFileSpec();
> >   }
> >
> > -  if (exists(stats)) {
> > +  if (exe_spec.Exists()) {
> >     exe_spec.GetPath(exe_path, sizeof(exe_path));
> >   } else {
> >     resolved_info.GetExecutableFile().GetPath(exe_path,
> sizeof(exe_path));
> >
> > Modified: lldb/trunk/source/Host/common/Symbols.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Symbols.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Host/common/Symbols.cpp (original)
> > +++ lldb/trunk/source/Host/common/Symbols.cpp Tue Mar  7 07:19:15 2017
> > @@ -229,7 +229,7 @@ FileSpec Symbols::LocateExecutableSymbol
> >     for (size_t idx = 0; idx < num_directories; ++idx) {
> >       FileSpec dirspec = debug_file_search_paths.GetFileSpecAtIndex(idx);
> >       dirspec.ResolvePath();
> > -      if (!llvm::sys::fs::is_directory(dirspec.GetPath()))
> > +      if (!dirspec.Exists() || !dirspec.IsDirectory())
> >         continue;
> >
> >       std::vector<std::string> files;
> >
> > Modified: lldb/trunk/source/Host/macosx/Host.mm
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Host.mm?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Host/macosx/Host.mm (original)
> > +++ lldb/trunk/source/Host/macosx/Host.mm Tue Mar  7 07:19:15 2017
> > @@ -75,8 +75,6 @@
> > #include "lldb/Utility/NameMatches.h"
> > #include "lldb/Utility/StreamString.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > #include "cfcpp/CFCBundle.h"
> > #include "cfcpp/CFCMutableArray.h"
> > #include "cfcpp/CFCMutableDictionary.h"
> > @@ -103,7 +101,7 @@ using namespace lldb_private;
> > bool Host::GetBundleDirectory(const FileSpec &file,
> >                               FileSpec &bundle_directory) {
> > #if defined(__APPLE__)
> > -  if (llvm::sys::fs::is_directory(file.GetPath())) {
> > +  if (file.GetFileType() == FileSpec::eFileTypeDirectory) {
> >     char path[PATH_MAX];
> >     if (file.GetPath(path, sizeof(path))) {
> >       CFCBundle bundle(path);
> > @@ -120,7 +118,7 @@ bool Host::GetBundleDirectory(const File
> >
> > bool Host::ResolveExecutableInBundle(FileSpec &file) {
> > #if defined(__APPLE__)
> > -  if (llvm::sys::fs::is_directory(file.GetPath())) {
> > +  if (file.GetFileType() == FileSpec::eFileTypeDirectory) {
> >     char path[PATH_MAX];
> >     if (file.GetPath(path, sizeof(path))) {
> >       CFCBundle bundle(path);
> > @@ -1186,8 +1184,8 @@ Error Host::LaunchProcess(ProcessLaunchI
> >   ModuleSpec exe_module_spec(launch_info.GetExecutableFile(),
> >                              launch_info.GetArchitecture());
> >
> > -  if (!llvm::sys::fs::is_regular_file(
> > -          exe_module_spec.GetFileSpec().GetPath())) {
> > +  FileSpec::FileType file_type =
> exe_module_spec.GetFileSpec().GetFileType();
> > +  if (file_type != FileSpec::eFileTypeRegular) {
> >     lldb::ModuleSP exe_module_sp;
> >     error = host_platform_sp->ResolveExecutable(exe_module_spec,
> exe_module_sp,
> >                                                 NULL);
> >
> > Modified: lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm (original)
> > +++ lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm Tue Mar  7 07:19:15
> 2017
> > @@ -18,7 +18,6 @@
> > #include "lldb/Utility/SafeMachO.h"
> >
> > #include "llvm/ADT/SmallString.h"
> > -#include "llvm/Support/FileSystem.h"
> > #include "llvm/Support/raw_ostream.h"
> >
> > // C++ Includes
> > @@ -153,7 +152,7 @@ bool HostInfoMacOSX::ComputeSupportExeDi
> >     // the lldb driver.
> >     raw_path.append("/../bin");
> >     FileSpec support_dir_spec(raw_path, true);
> > -    if (!llvm::sys::fs::is_directory(support_dir_spec.GetPath())) {
> > +    if (!support_dir_spec.Exists() || !support_dir_spec.IsDirectory()) {
> >       Log *log =
> lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
> >       if (log)
> >         log->Printf("HostInfoMacOSX::%s(): failed to find support
> directory",
> >
> > Modified: lldb/trunk/source/Host/macosx/Symbols.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Symbols.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Host/macosx/Symbols.cpp (original)
> > +++ lldb/trunk/source/Host/macosx/Symbols.cpp Tue Mar  7 07:19:15 2017
> > @@ -38,8 +38,6 @@
> > #include "lldb/Utility/UUID.h"
> > #include "mach/machine.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > using namespace lldb;
> > using namespace lldb_private;
> > using namespace llvm::MachO;
> > @@ -103,7 +101,7 @@ int LocateMacOSXFilesUsingDebugSymbols(c
> >             }
> >             FileSpec dsym_filespec(path, path[0] == '~');
> >
> > -            if (llvm::sys::fs::is_directory(dsym_filespec.GetPath())) {
> > +            if (dsym_filespec.GetFileType() ==
> FileSpec::eFileTypeDirectory) {
> >               dsym_filespec =
> >                   Symbols::FindSymbolFileInBundle(dsym_filespec, uuid,
> arch);
> >               ++items_found;
> > @@ -166,10 +164,8 @@ int LocateMacOSXFilesUsingDebugSymbols(c
> >                 FileSpec file_spec(path, true);
> >                 ModuleSpecList module_specs;
> >                 ModuleSpec matched_module_spec;
> > -                using namespace llvm::sys::fs;
> > -                switch (get_file_type(file_spec.GetPath())) {
> > -
> > -                case file_type::directory_file: // Bundle directory?
> > +                switch (file_spec.GetFileType()) {
> > +                case FileSpec::eFileTypeDirectory: // Bundle directory?
> >                 {
> >                   CFCBundle bundle(path);
> >                   CFCReleaser<CFURLRef> bundle_exe_url(
> > @@ -197,17 +193,15 @@ int LocateMacOSXFilesUsingDebugSymbols(c
> >                   }
> >                 } break;
> >
> > -                case file_type::fifo_file:      // Forget pipes
> > -                case file_type::socket_file:    // We can't process
> socket files
> > -                case file_type::file_not_found: // File doesn't exist...
> > -                case file_type::status_error:
> > +                case FileSpec::eFileTypePipe:   // Forget pipes
> > +                case FileSpec::eFileTypeSocket: // We can't process
> socket files
> > +                case FileSpec::eFileTypeInvalid: // File doesn't
> exist...
> >                   break;
> >
> > -                case file_type::type_unknown:
> > -                case file_type::regular_file:
> > -                case file_type::symlink_file:
> > -                case file_type::block_file:
> > -                case file_type::character_file:
> > +                case FileSpec::eFileTypeUnknown:
> > +                case FileSpec::eFileTypeRegular:
> > +                case FileSpec::eFileTypeSymbolicLink:
> > +                case FileSpec::eFileTypeOther:
> >                   if (ObjectFile::GetModuleSpecifications(file_spec, 0,
> 0,
> >                                                           module_specs)
> &&
> >                       module_specs.FindMatchingModuleSpec(module_spec,
> >
> > Modified: lldb/trunk/source/Host/posix/FileSystem.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/posix/FileSystem.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Host/posix/FileSystem.cpp (original)
> > +++ lldb/trunk/source/Host/posix/FileSystem.cpp Tue Mar  7 07:19:15 2017
> > @@ -29,8 +29,6 @@
> > #include "lldb/Utility/Error.h"
> > #include "lldb/Utility/StreamString.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > using namespace lldb;
> > using namespace lldb_private;
> >
> > @@ -63,7 +61,7 @@ Error FileSystem::MakeDirectory(const Fi
> >         return error;
> >       } break;
> >       case EEXIST: {
> > -        if (llvm::sys::fs::is_directory(file_spec.GetPath()))
> > +        if (file_spec.IsDirectory())
> >           return Error(); // It is a directory and it already exists
> >       } break;
> >       }
> > @@ -85,9 +83,9 @@ Error FileSystem::DeleteDirectory(const
> >       FileSpec::ForEachItemInDirectory(
> >           file_spec.GetCString(),
> >           [&error, &sub_directories](
> > -              llvm::sys::fs::file_type ft,
> > +              FileSpec::FileType file_type,
> >               const FileSpec &spec) ->
> FileSpec::EnumerateDirectoryResult {
> > -            if (ft == llvm::sys::fs::file_type::directory_file) {
> > +            if (file_type == FileSpec::eFileTypeDirectory) {
> >               // Save all directorires and process them after iterating
> through
> >               // this directory
> >               sub_directories.push_back(spec);
> >
> > Modified:
> lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > ---
> lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
> (original)
> > +++
> lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
> Tue Mar  7 07:19:15 2017
> > @@ -20,7 +20,6 @@
> > #include "clang/Parse/Parser.h"
> > #include "clang/Sema/Lookup.h"
> > #include "clang/Serialization/ASTReader.h"
> > -#include "llvm/Support/FileSystem.h"
> > #include "llvm/Support/Path.h"
> > #include "llvm/Support/Threading.h"
> >
> > @@ -607,7 +606,7 @@ ClangModulesDeclVendor::Create(Target &t
> >   {
> >     FileSpec clang_resource_dir = GetResourceDir();
> >
> > -    if (llvm::sys::fs::is_directory(clang_resource_dir.GetPath())) {
> > +    if (clang_resource_dir.IsDirectory()) {
> >       compiler_invocation_arguments.push_back("-resource-dir");
> >
>  compiler_invocation_arguments.push_back(clang_resource_dir.GetPath());
> >     }
> >
> > Modified:
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > ---
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.cpp
> (original)
> > +++
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.cpp Tue
> Mar  7 07:19:15 2017
> > @@ -28,8 +28,6 @@
> > #include "lldb/Utility/Log.h"
> > #include "lldb/Utility/StreamString.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > using namespace lldb;
> > using namespace lldb_private;
> >
> > @@ -248,9 +246,9 @@ Error PlatformAppleTVSimulator::ResolveE
> > }
> >
> > static FileSpec::EnumerateDirectoryResult
> > -EnumerateDirectoryCallback(void *baton, llvm::sys::fs::file_type ft,
> > +EnumerateDirectoryCallback(void *baton, FileSpec::FileType file_type,
> >                            const FileSpec &file_spec) {
> > -  if (ft == llvm::sys::fs::file_type::directory_file) {
> > +  if (file_type == FileSpec::eFileTypeDirectory) {
> >     const char *filename = file_spec.GetFilename().GetCString();
> >     if (filename &&
> >         strncmp(filename, "AppleTVSimulator",
> strlen("AppleTVSimulator")) ==
> >
> > Modified:
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > ---
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.cpp
> (original)
> > +++
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.cpp
> Tue Mar  7 07:19:15 2017
> > @@ -248,9 +248,9 @@ Error PlatformAppleWatchSimulator::Resol
> > }
> >
> > static FileSpec::EnumerateDirectoryResult
> > -EnumerateDirectoryCallback(void *baton, llvm::sys::fs::file_type ft,
> > +EnumerateDirectoryCallback(void *baton, FileSpec::FileType file_type,
> >                            const FileSpec &file_spec) {
> > -  if (ft == llvm::sys::fs::file_type::directory_file) {
> > +  if (file_type == FileSpec::eFileTypeDirectory) {
> >     const char *filename = file_spec.GetFilename().GetCString();
> >     if (filename &&
> >         strncmp(filename, "AppleWatchSimulator",
> >
> > Modified: lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
> (original)
> > +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp Tue
> Mar  7 07:19:15 2017
> > @@ -41,7 +41,6 @@
> > #include "lldb/Utility/Error.h"
> > #include "lldb/Utility/Log.h"
> > #include "llvm/ADT/STLExtras.h"
> > -#include "llvm/Support/FileSystem.h"
> > #include "llvm/Support/Threading.h"
> >
> > #if defined(__APPLE__)
> > @@ -202,15 +201,8 @@ Error PlatformDarwin::ResolveSymbolFile(
> >                                         FileSpec &sym_file) {
> >   Error error;
> >   sym_file = sym_spec.GetSymbolFileSpec();
> > -
> > -  llvm::sys::fs::file_status st;
> > -  if (status(sym_file.GetPath(), st)) {
> > -    error.SetErrorString("Could not stat file!");
> > -    return error;
> > -  }
> > -
> > -  if (exists(st)) {
> > -    if (is_directory(st)) {
> > +  if (sym_file.Exists()) {
> > +    if (sym_file.GetFileType() == FileSpec::eFileTypeDirectory) {
> >       sym_file = Symbols::FindSymbolFileInBundle(
> >           sym_file, sym_spec.GetUUIDPtr(),
> sym_spec.GetArchitecturePtr());
> >     }
> > @@ -1202,7 +1194,7 @@ const char *PlatformDarwin::GetDeveloper
> >           developer_dir_path[i] = '\0';
> >
> >           FileSpec devel_dir(developer_dir_path, false);
> > -          if (llvm::sys::fs::is_directory(devel_dir.GetPath())) {
> > +          if (devel_dir.Exists() && devel_dir.IsDirectory()) {
> >             developer_dir_path_valid = true;
> >           }
> >         }
> > @@ -1447,8 +1439,9 @@ bool PlatformDarwin::SDKSupportsModules(
> >   return false;
> > }
> >
> > -FileSpec::EnumerateDirectoryResult PlatformDarwin::DirectoryEnumerator(
> > -    void *baton, llvm::sys::fs::file_type file_type, const FileSpec
> &spec) {
> > +FileSpec::EnumerateDirectoryResult
> > +PlatformDarwin::DirectoryEnumerator(void *baton, FileSpec::FileType
> file_type,
> > +                                    const FileSpec &spec) {
> >   SDKEnumeratorInfo *enumerator_info = static_cast<SDKEnumeratorInfo
> *>(baton);
> >
> >   if (SDKSupportsModules(enumerator_info->sdk_type, spec)) {
> > @@ -1463,9 +1456,8 @@ FileSpec PlatformDarwin::FindSDKInXcodeF
> >                                                   const FileSpec
> &sdks_spec) {
> >   // Look inside Xcode for the required installed iOS SDK version
> >
> > -  if (!llvm::sys::fs::is_directory(sdks_spec.GetPath())) {
> > +  if (!sdks_spec.IsDirectory())
> >     return FileSpec();
> > -  }
> >
> >   const bool find_directories = true;
> >   const bool find_files = false;
> > @@ -1479,7 +1471,7 @@ FileSpec PlatformDarwin::FindSDKInXcodeF
> >                                find_files, find_other,
> DirectoryEnumerator,
> >                                &enumerator_info);
> >
> > -  if (llvm::sys::fs::is_directory(enumerator_info.found_path.GetPath()))
> > +  if (enumerator_info.found_path.IsDirectory())
> >     return enumerator_info.found_path;
> >   else
> >     return FileSpec();
> > @@ -1638,7 +1630,7 @@ void PlatformDarwin::AddClangModuleCompi
> >     sysroot_spec = GetSDKDirectoryForModules(sdk_type);
> >   }
> >
> > -  if (llvm::sys::fs::is_directory(sysroot_spec.GetPath())) {
> > +  if (sysroot_spec.IsDirectory()) {
> >     options.push_back("-isysroot");
> >     options.push_back(sysroot_spec.GetPath());
> >   }
> >
> > Modified: lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.h
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.h?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.h (original)
> > +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.h Tue Mar
> 7 07:19:15 2017
> > @@ -18,7 +18,6 @@
> > #include "Plugins/Platform/POSIX/PlatformPOSIX.h"
> > #include "lldb/Host/FileSpec.h"
> > #include "llvm/ADT/StringRef.h"
> > -#include "llvm/Support/FileSystem.h"
> >
> > #include <string>
> > #include <tuple>
> > @@ -113,7 +112,7 @@ protected:
> >   };
> >
> >   static lldb_private::FileSpec::EnumerateDirectoryResult
> > -  DirectoryEnumerator(void *baton, llvm::sys::fs::file_type file_type,
> > +  DirectoryEnumerator(void *baton, lldb_private::FileSpec::FileType
> file_type,
> >                       const lldb_private::FileSpec &spec);
> >
> >   static lldb_private::FileSpec
> >
> > Modified:
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
> (original)
> > +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
> Tue Mar  7 07:19:15 2017
> > @@ -36,8 +36,6 @@
> > #include "lldb/Utility/Log.h"
> > #include "lldb/Utility/StreamString.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > #include <CoreFoundation/CoreFoundation.h>
> >
> > #include "Host/macosx/cfcpp/CFCBundle.h"
> > @@ -383,7 +381,7 @@ void PlatformDarwinKernel::CollectKextAn
> >
> >   // Add simple directory
> /Applications/Xcode.app/Contents/Developer/../Symbols
> >   FileSpec possible_dir(developer_dir + "/../Symbols", true);
> > -  if (llvm::sys::fs::is_directory(possible_dir.GetPath()))
> > +  if (possible_dir.Exists() && possible_dir.IsDirectory())
> >     m_search_directories.push_back(possible_dir);
> >
> >   // Add simple directory of the current working directory
> > @@ -398,7 +396,7 @@ void PlatformDarwinKernel::GetUserSpecif
> >   for (uint32_t i = 0; i < user_dirs_count; i++) {
> >     FileSpec dir = user_dirs.GetFileSpecAtIndex(i);
> >     dir.ResolvePath();
> > -    if (llvm::sys::fs::is_directory(dir.GetPath())) {
> > +    if (dir.Exists() && dir.IsDirectory()) {
> >       m_search_directories.push_back(dir);
> >     }
> >   }
> > @@ -414,7 +412,7 @@ void PlatformDarwinKernel::AddRootSubdir
> >       nullptr};
> >   for (int i = 0; subdirs[i] != nullptr; i++) {
> >     FileSpec testdir(dir + subdirs[i], true);
> > -    if (llvm::sys::fs::is_directory(testdir.GetPath()))
> > +    if (testdir.Exists() && testdir.IsDirectory())
> >       thisp->m_search_directories.push_back(testdir);
> >   }
> >
> > @@ -437,12 +435,12 @@ void PlatformDarwinKernel::AddSDKSubdirs
> > // Helper function to find *.sdk and *.kdk directories in a given
> directory.
> > FileSpec::EnumerateDirectoryResult
> > PlatformDarwinKernel::FindKDKandSDKDirectoriesInDirectory(
> > -    void *baton, llvm::sys::fs::file_type ft, const FileSpec
> &file_spec) {
> > +    void *baton, FileSpec::FileType file_type, const FileSpec
> &file_spec) {
> >   static ConstString g_sdk_suffix = ConstString("sdk");
> >   static ConstString g_kdk_suffix = ConstString("kdk");
> >
> >   PlatformDarwinKernel *thisp = (PlatformDarwinKernel *)baton;
> > -  if (ft == llvm::sys::fs::file_type::directory_file &&
> > +  if (file_type == FileSpec::eFileTypeDirectory &&
> >       (file_spec.GetFileNameExtension() == g_sdk_suffix ||
> >        file_spec.GetFileNameExtension() == g_kdk_suffix)) {
> >     AddRootSubdirsToSearchPaths(thisp, file_spec.GetPath());
> > @@ -488,19 +486,20 @@ void PlatformDarwinKernel::SearchForKext
> >
> > FileSpec::EnumerateDirectoryResult
> > PlatformDarwinKernel::GetKernelsAndKextsInDirectoryWithRecursion(
> > -    void *baton, llvm::sys::fs::file_type ft, const FileSpec
> &file_spec) {
> > -  return GetKernelsAndKextsInDirectoryHelper(baton, ft, file_spec,
> true);
> > +    void *baton, FileSpec::FileType file_type, const FileSpec
> &file_spec) {
> > +  return GetKernelsAndKextsInDirectoryHelper(baton, file_type,
> file_spec, true);
> > }
> >
> > FileSpec::EnumerateDirectoryResult
> > PlatformDarwinKernel::GetKernelsAndKextsInDirectoryNoRecursion(
> > -    void *baton, llvm::sys::fs::file_type ft, const FileSpec
> &file_spec) {
> > -  return GetKernelsAndKextsInDirectoryHelper(baton, ft, file_spec,
> false);
> > +    void *baton, FileSpec::FileType file_type, const FileSpec
> &file_spec) {
> > +  return GetKernelsAndKextsInDirectoryHelper(baton, file_type,
> file_spec,
> > +                                             false);
> > }
> >
> > FileSpec::EnumerateDirectoryResult
> > PlatformDarwinKernel::GetKernelsAndKextsInDirectoryHelper(
> > -    void *baton, llvm::sys::fs::file_type ft, const FileSpec &file_spec,
> > +    void *baton, FileSpec::FileType file_type, const FileSpec
> &file_spec,
> >     bool recurse) {
> >   static ConstString g_kext_suffix = ConstString("kext");
> >   static ConstString g_dsym_suffix = ConstString("dSYM");
> > @@ -513,8 +512,8 @@ PlatformDarwinKernel::GetKernelsAndKexts
> >                 file_spec.GetPath().c_str());
> >
> >   PlatformDarwinKernel *thisp = (PlatformDarwinKernel *)baton;
> > -  if (ft == llvm::sys::fs::file_type::regular_file ||
> > -      ft == llvm::sys::fs::file_type::symlink_file) {
> > +  if (file_type == FileSpec::eFileTypeRegular ||
> > +      file_type == FileSpec::eFileTypeSymbolicLink) {
> >     ConstString filename = file_spec.GetFilename();
> >     if ((strncmp(filename.GetCString(), "kernel", 6) == 0 ||
> >          strncmp(filename.GetCString(), "mach", 4) == 0) &&
> > @@ -525,17 +524,17 @@ PlatformDarwinKernel::GetKernelsAndKexts
> >         thisp->m_kernel_binaries_without_dsyms.push_back(file_spec);
> >       return FileSpec::eEnumerateDirectoryResultNext;
> >     }
> > -  } else if (ft == llvm::sys::fs::file_type::directory_file &&
> > +  } else if (file_type == FileSpec::eFileTypeDirectory &&
> >              file_spec_extension == g_kext_suffix) {
> >     AddKextToMap(thisp, file_spec);
> >     // Look to see if there is a PlugIns subdir with more kexts
> >     FileSpec contents_plugins(file_spec.GetPath() + "/Contents/PlugIns",
> false);
> >     std::string search_here_too;
> > -    if (llvm::sys::fs::is_directory(contents_plugins.GetPath())) {
> > +    if (contents_plugins.Exists() && contents_plugins.IsDirectory()) {
> >       search_here_too = contents_plugins.GetPath();
> >     } else {
> >       FileSpec plugins(file_spec.GetPath() + "/PlugIns", false);
> > -      if (llvm::sys::fs::is_directory(plugins.GetPath())) {
> > +      if (plugins.Exists() && plugins.IsDirectory()) {
> >         search_here_too = plugins.GetPath();
> >       }
> >     }
> > @@ -592,7 +591,7 @@ bool PlatformDarwinKernel::KextHasdSYMSi
> >   std::string filename = dsym_fspec.GetFilename().AsCString();
> >   filename += ".dSYM";
> >   dsym_fspec.GetFilename() = ConstString(filename);
> > -  if (llvm::sys::fs::is_directory(dsym_fspec.GetPath())) {
> > +  if (dsym_fspec.Exists() && dsym_fspec.IsDirectory()) {
> >     return true;
> >   }
> >   // Should probably get the CFBundleExecutable here or call
> > @@ -606,7 +605,7 @@ bool PlatformDarwinKernel::KextHasdSYMSi
> >   deep_bundle_str += executable_name.AsCString();
> >   deep_bundle_str += ".dSYM";
> >   dsym_fspec.SetFile(deep_bundle_str, true);
> > -  if (llvm::sys::fs::is_directory(dsym_fspec.GetPath())) {
> > +  if (dsym_fspec.Exists() && dsym_fspec.IsDirectory()) {
> >     return true;
> >   }
> >
> > @@ -616,7 +615,7 @@ bool PlatformDarwinKernel::KextHasdSYMSi
> >   shallow_bundle_str += executable_name.AsCString();
> >   shallow_bundle_str += ".dSYM";
> >   dsym_fspec.SetFile(shallow_bundle_str, true);
> > -  if (llvm::sys::fs::is_directory(dsym_fspec.GetPath())) {
> > +  if (dsym_fspec.Exists() && dsym_fspec.IsDirectory()) {
> >     return true;
> >   }
> >   return false;
> > @@ -630,7 +629,7 @@ bool PlatformDarwinKernel::KernelHasdSYM
> >   std::string filename = kernel_binary.GetFilename().AsCString();
> >   filename += ".dSYM";
> >   kernel_dsym.GetFilename() = ConstString(filename);
> > -  if (llvm::sys::fs::is_directory(kernel_dsym.GetPath())) {
> > +  if (kernel_dsym.Exists() && kernel_dsym.IsDirectory()) {
> >     return true;
> >   }
> >   return false;
> >
> > Modified:
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h
> (original)
> > +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h Tue
> Mar  7 07:19:15 2017
> > @@ -20,8 +20,6 @@
> > // Other libraries and framework includes
> > #include "lldb/Host/FileSpec.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > // Project includes
> > #include "PlatformDarwin.h"
> >
> > @@ -107,25 +105,26 @@ protected:
> >   void AddSDKSubdirsToSearchPaths(const std::string &dir);
> >
> >   static lldb_private::FileSpec::EnumerateDirectoryResult
> > -  FindKDKandSDKDirectoriesInDirectory(void *baton,
> llvm::sys::fs::file_type ft,
> > -                                      const lldb_private::FileSpec
> &file_spec);
> > +  FindKDKandSDKDirectoriesInDirectory(
> > +      void *baton, lldb_private::FileSpec::FileType file_type,
> > +      const lldb_private::FileSpec &file_spec);
> >
> >   void SearchForKextsAndKernelsRecursively();
> >
> >   static lldb_private::FileSpec::EnumerateDirectoryResult
> >   GetKernelsAndKextsInDirectoryWithRecursion(
> > -      void *baton, llvm::sys::fs::file_type ft,
> > +      void *baton, lldb_private::FileSpec::FileType file_type,
> >       const lldb_private::FileSpec &file_spec);
> >
> >   static lldb_private::FileSpec::EnumerateDirectoryResult
> >   GetKernelsAndKextsInDirectoryNoRecursion(
> > -      void *baton, llvm::sys::fs::file_type ft,
> > +      void *baton, lldb_private::FileSpec::FileType file_type,
> >       const lldb_private::FileSpec &file_spec);
> >
> >   static lldb_private::FileSpec::EnumerateDirectoryResult
> > -  GetKernelsAndKextsInDirectoryHelper(void *baton,
> llvm::sys::fs::file_type ft,
> > -                                      const lldb_private::FileSpec
> &file_spec,
> > -                                      bool recurse);
> > +  GetKernelsAndKextsInDirectoryHelper(
> > +      void *baton, lldb_private::FileSpec::FileType file_type,
> > +      const lldb_private::FileSpec &file_spec, bool recurse);
> >
> >   static void AddKextToMap(PlatformDarwinKernel *thisp,
> >                            const lldb_private::FileSpec &file_spec);
> >
> > Modified:
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
> (original)
> > +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.cpp
> Tue Mar  7 07:19:15 2017
> > @@ -250,7 +250,7 @@ Error PlatformRemoteAppleTV::ResolveExec
> >
> > FileSpec::EnumerateDirectoryResult
> > PlatformRemoteAppleTV::GetContainedFilesIntoVectorOfStringsCallback(
> > -    void *baton, llvm::sys::fs::file_type ft, const FileSpec
> &file_spec) {
> > +    void *baton, FileSpec::FileType file_type, const FileSpec
> &file_spec) {
> >   ((PlatformRemoteAppleTV::SDKDirectoryInfoCollection *)baton)
> >       ->push_back(PlatformRemoteAppleTV::SDKDirectoryInfo(file_spec));
> >   return FileSpec::eEnumerateDirectoryResultNext;
> >
> > Modified:
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h
> (original)
> > +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h
> Tue Mar  7 07:19:15 2017
> > @@ -18,8 +18,6 @@
> > // Project includes
> > #include "lldb/Host/FileSpec.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > #include "PlatformDarwin.h"
> >
> > class PlatformRemoteAppleTV : public PlatformDarwin {
> > @@ -118,7 +116,7 @@ protected:
> >
> >   static lldb_private::FileSpec::EnumerateDirectoryResult
> >   GetContainedFilesIntoVectorOfStringsCallback(
> > -      void *baton, llvm::sys::fs::file_type ft,
> > +      void *baton, lldb_private::FileSpec::FileType file_type,
> >       const lldb_private::FileSpec &file_spec);
> >
> >   uint32_t FindFileInAllSDKs(const char *platform_file_path,
> >
> > Modified:
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > ---
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp
> (original)
> > +++
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.cpp Tue
> Mar  7 07:19:15 2017
> > @@ -260,7 +260,7 @@ Error PlatformRemoteAppleWatch::ResolveE
> >
> > FileSpec::EnumerateDirectoryResult
> > PlatformRemoteAppleWatch::GetContainedFilesIntoVectorOfStringsCallback(
> > -    void *baton, llvm::sys::fs::file_type ft, const FileSpec
> &file_spec) {
> > +    void *baton, FileSpec::FileType file_type, const FileSpec
> &file_spec) {
> >   ((PlatformRemoteAppleWatch::SDKDirectoryInfoCollection *)baton)
> >       ->push_back(PlatformRemoteAppleWatch::SDKDirectoryInfo(file_spec));
> >   return FileSpec::eEnumerateDirectoryResultNext;
> >
> > Modified:
> lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h
> (original)
> > +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h
> Tue Mar  7 07:19:15 2017
> > @@ -21,8 +21,6 @@
> >
> > #include "PlatformDarwin.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > class PlatformRemoteAppleWatch : public PlatformDarwin {
> > public:
> >   PlatformRemoteAppleWatch();
> > @@ -120,7 +118,7 @@ protected:
> >
> >   static lldb_private::FileSpec::EnumerateDirectoryResult
> >   GetContainedFilesIntoVectorOfStringsCallback(
> > -      void *baton, llvm::sys::fs::file_type ft,
> > +      void *baton, lldb_private::FileSpec::FileType file_type,
> >       const lldb_private::FileSpec &file_spec);
> >
> >   uint32_t FindFileInAllSDKs(const char *platform_file_path,
> >
> > Modified: lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
> (original)
> > +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp Tue
> Mar  7 07:19:15 2017
> > @@ -255,7 +255,7 @@ Error PlatformRemoteiOS::ResolveExecutab
> >
> > FileSpec::EnumerateDirectoryResult
> > PlatformRemoteiOS::GetContainedFilesIntoVectorOfStringsCallback(
> > -    void *baton, llvm::sys::fs::file_type ft, const FileSpec
> &file_spec) {
> > +    void *baton, FileSpec::FileType file_type, const FileSpec
> &file_spec) {
> >   ((PlatformRemoteiOS::SDKDirectoryInfoCollection *)baton)
> >       ->push_back(PlatformRemoteiOS::SDKDirectoryInfo(file_spec));
> >   return FileSpec::eEnumerateDirectoryResultNext;
> >
> > Modified: lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h
> > URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h?rev=297139&r1=297138&r2=297139&view=diff
> >
> ==============================================================================
> > --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h
> (original)
> > +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h Tue
> Mar  7 07:19:15 2017
> > @@ -19,8 +19,6 @@
> > #include "PlatformDarwin.h"
> > #include "lldb/Host/FileSpec.h"
> >
> > -#include "llvm/Support/FileSystem.h"
> > -
> > class PlatformRemoteiOS : public PlatformDarwin {
> > public:
> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20170307/aea9f180/attachment-0001.html>


More information about the lldb-commits mailing list