r202443 - Revert "Honour 'use-external-names' in FileManager"
Ben Langmuir
blangmuir at apple.com
Thu Feb 27 15:48:03 PST 2014
Author: benlangmuir
Date: Thu Feb 27 17:48:03 2014
New Revision: 202443
URL: http://llvm.org/viewvc/llvm-project?rev=202443&view=rev
Log:
Revert "Honour 'use-external-names' in FileManager"
Revert r202442, which broke the buildbots.
Removed:
cfe/trunk/test/VFS/Inputs/external-names.h
cfe/trunk/test/VFS/Inputs/use-external-names.yaml
cfe/trunk/test/VFS/external-names.c
Modified:
cfe/trunk/include/clang/Basic/FileManager.h
cfe/trunk/include/clang/Basic/FileSystemStatCache.h
cfe/trunk/include/clang/Basic/VirtualFileSystem.h
cfe/trunk/lib/Basic/FileManager.cpp
cfe/trunk/lib/Basic/FileSystemStatCache.cpp
cfe/trunk/lib/Basic/VirtualFileSystem.cpp
cfe/trunk/lib/Lex/PTHLexer.cpp
cfe/trunk/unittests/Basic/FileManagerTest.cpp
Modified: cfe/trunk/include/clang/Basic/FileManager.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/FileManager.h?rev=202443&r1=202442&r2=202443&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/FileManager.h (original)
+++ cfe/trunk/include/clang/Basic/FileManager.h Thu Feb 27 17:48:03 2014
@@ -59,7 +59,7 @@ public:
/// If the 'File' member is valid, then this FileEntry has an open file
/// descriptor for the file.
class FileEntry {
- std::string Name; // Name of the file.
+ const char *Name; // Name of the file.
off_t Size; // File size in bytes.
time_t ModTime; // Modification time of file.
const DirectoryEntry *Dir; // Directory file lives in.
@@ -81,7 +81,8 @@ class FileEntry {
public:
FileEntry()
- : UniqueID(0, 0), IsNamedPipe(false), InPCH(false), IsValid(false)
+ : Name(0), UniqueID(0, 0), IsNamedPipe(false), InPCH(false),
+ IsValid(false)
{}
// FIXME: this is here to allow putting FileEntry in std::map. Once we have
@@ -91,7 +92,7 @@ public:
assert(!isValid() && "Cannot copy an initialized FileEntry");
}
- const char *getName() const { return Name.c_str(); }
+ const char *getName() const { return Name; }
bool isValid() const { return IsValid; }
off_t getSize() const { return Size; }
unsigned getUID() const { return UID; }
Modified: cfe/trunk/include/clang/Basic/FileSystemStatCache.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/FileSystemStatCache.h?rev=202443&r1=202442&r2=202443&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/FileSystemStatCache.h (original)
+++ cfe/trunk/include/clang/Basic/FileSystemStatCache.h Thu Feb 27 17:48:03 2014
@@ -29,9 +29,7 @@ class File;
class FileSystem;
}
-// FIXME: should probably replace this with vfs::Status
struct FileData {
- std::string Name;
uint64_t Size;
time_t ModTime;
llvm::sys::fs::UniqueID UniqueID;
Modified: cfe/trunk/include/clang/Basic/VirtualFileSystem.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/VirtualFileSystem.h?rev=202443&r1=202442&r2=202443&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/VirtualFileSystem.h (original)
+++ cfe/trunk/include/clang/Basic/VirtualFileSystem.h Thu Feb 27 17:48:03 2014
@@ -90,8 +90,6 @@ public:
bool RequiresNullTerminator = true) = 0;
/// \brief Closes the file.
virtual llvm::error_code close() = 0;
- /// \brief Sets the name to use for this file.
- virtual void setName(StringRef Name) = 0;
};
/// \brief The virtual file system interface.
Modified: cfe/trunk/lib/Basic/FileManager.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/FileManager.cpp?rev=202443&r1=202442&r2=202443&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/FileManager.cpp (original)
+++ cfe/trunk/lib/Basic/FileManager.cpp Thu Feb 27 17:48:03 2014
@@ -282,7 +282,7 @@ const FileEntry *FileManager::getFile(St
}
// Otherwise, we don't have this file yet, add it.
- UFE.Name = Data.Name;
+ UFE.Name = InterndFileName;
UFE.Size = Data.Size;
UFE.ModTime = Data.ModTime;
UFE.Dir = DirInfo;
Modified: cfe/trunk/lib/Basic/FileSystemStatCache.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/FileSystemStatCache.cpp?rev=202443&r1=202442&r2=202443&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/FileSystemStatCache.cpp (original)
+++ cfe/trunk/lib/Basic/FileSystemStatCache.cpp Thu Feb 27 17:48:03 2014
@@ -32,7 +32,6 @@ void FileSystemStatCache::anchor() { }
static void copyStatusToFileData(const vfs::Status &Status,
FileData &Data) {
- Data.Name = Status.getName();
Data.Size = Status.getSize();
Data.ModTime = Status.getLastModificationTime().toEpochTime();
Data.UniqueID = Status.getUniqueID();
Modified: cfe/trunk/lib/Basic/VirtualFileSystem.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/VirtualFileSystem.cpp?rev=202443&r1=202442&r2=202443&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/VirtualFileSystem.cpp (original)
+++ cfe/trunk/lib/Basic/VirtualFileSystem.cpp Thu Feb 27 17:48:03 2014
@@ -83,7 +83,6 @@ error_code FileSystem::getBufferForFile(
/// \brief Wrapper around a raw file descriptor.
class RealFile : public File {
int FD;
- Status S;
friend class RealFileSystem;
RealFile(int FD) : FD(FD) {
assert(FD >= 0 && "Invalid or inactive file descriptor");
@@ -96,21 +95,15 @@ public:
int64_t FileSize = -1,
bool RequiresNullTerminator = true) LLVM_OVERRIDE;
error_code close() LLVM_OVERRIDE;
- void setName(StringRef Name) LLVM_OVERRIDE;
};
RealFile::~RealFile() { close(); }
ErrorOr<Status> RealFile::status() {
assert(FD != -1 && "cannot stat closed file");
- if (!S.isStatusKnown()) {
- file_status RealStatus;
- if (error_code EC = sys::fs::status(FD, RealStatus))
- return EC;
- Status NewS(RealStatus);
- NewS.setName(S.getName());
- S = llvm_move(NewS);
- }
- return S;
+ file_status RealStatus;
+ if (error_code EC = sys::fs::status(FD, RealStatus))
+ return EC;
+ return Status(RealStatus);
}
error_code RealFile::getBuffer(const Twine &Name,
@@ -138,10 +131,6 @@ error_code RealFile::close() {
return error_code::success();
}
-void RealFile::setName(StringRef Name) {
- S.setName(Name);
-}
-
/// \brief The file system according to your operating system.
class RealFileSystem : public FileSystem {
public:
@@ -165,7 +154,6 @@ error_code RealFileSystem::openFileForRe
if (error_code EC = sys::fs::openFileForRead(Name, FD))
return EC;
Result.reset(new RealFile(FD));
- Result->setName(Name.str());
return error_code::success();
}
@@ -279,10 +267,7 @@ public:
UseName(UseName) {}
StringRef getExternalContentsPath() const { return ExternalContentsPath; }
/// \brief whether to use the external path as the name for this file.
- bool useExternalName(bool GlobalUseExternalName) const {
- return UseName == NK_NotSet ? GlobalUseExternalName
- : (UseName == NK_External);
- }
+ NameKind useName() const { return UseName; }
static bool classof(const Entry *E) { return E->getKind() == EK_File; }
};
@@ -785,7 +770,8 @@ ErrorOr<Status> VFSFromYAML::status(cons
if (FileEntry *F = dyn_cast<FileEntry>(*Result)) {
ErrorOr<Status> S = ExternalFS->status(F->getExternalContentsPath());
assert(!S || S->getName() == F->getExternalContentsPath());
- if (S && !F->useExternalName(UseExternalNames))
+ if (S && (F->useName() == FileEntry::NK_Virtual ||
+ (F->useName() == FileEntry::NK_NotSet && !UseExternalNames)))
S->setName(PathStr);
return S;
} else { // directory
@@ -806,14 +792,7 @@ error_code VFSFromYAML::openFileForRead(
if (!F) // FIXME: errc::not_a_file?
return error_code(errc::invalid_argument, system_category());
- if (error_code EC = ExternalFS->openFileForRead(F->getExternalContentsPath(),
- Result))
- return EC;
-
- if (!F->useExternalName(UseExternalNames))
- Result->setName(Path.str());
-
- return error_code::success();
+ return ExternalFS->openFileForRead(F->getExternalContentsPath(), Result);
}
IntrusiveRefCntPtr<FileSystem>
Modified: cfe/trunk/lib/Lex/PTHLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PTHLexer.cpp?rev=202443&r1=202442&r2=202443&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/PTHLexer.cpp (original)
+++ cfe/trunk/lib/Lex/PTHLexer.cpp Thu Feb 27 17:48:03 2014
@@ -688,7 +688,6 @@ public:
if (!D.HasData)
return CacheMissing;
- Data.Name = Path;
Data.Size = D.Size;
Data.ModTime = D.ModTime;
Data.UniqueID = D.UniqueID;
Removed: cfe/trunk/test/VFS/Inputs/external-names.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/VFS/Inputs/external-names.h?rev=202442&view=auto
==============================================================================
--- cfe/trunk/test/VFS/Inputs/external-names.h (original)
+++ cfe/trunk/test/VFS/Inputs/external-names.h (removed)
@@ -1,4 +0,0 @@
-void foo(char **c) {
- *c = __FILE__;
- int x = c; // produce a diagnostic
-}
Removed: cfe/trunk/test/VFS/Inputs/use-external-names.yaml
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/VFS/Inputs/use-external-names.yaml?rev=202442&view=auto
==============================================================================
--- cfe/trunk/test/VFS/Inputs/use-external-names.yaml (original)
+++ cfe/trunk/test/VFS/Inputs/use-external-names.yaml (removed)
@@ -1,7 +0,0 @@
-{
- 'version': 0,
- 'use-external-names': EXTERNAL_NAMES,
- 'roots': [{ 'type': 'file', 'name': 'OUT_DIR/external-names.h',
- 'external-contents': 'INPUT_DIR/external-names.h'
- }]
-}
Removed: cfe/trunk/test/VFS/external-names.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/VFS/external-names.c?rev=202442&view=auto
==============================================================================
--- cfe/trunk/test/VFS/external-names.c (original)
+++ cfe/trunk/test/VFS/external-names.c (removed)
@@ -1,35 +0,0 @@
-// RUN: sed -e "s:INPUT_DIR:%S/Inputs:g" -e "s:OUT_DIR:%t:g" -e "s:EXTERNAL_NAMES:true:" %S/Inputs/use-external-names.yaml > %t.external.yaml
-// RUN: sed -e "s:INPUT_DIR:%S/Inputs:g" -e "s:OUT_DIR:%t:g" -e "s:EXTERNAL_NAMES:false:" %S/Inputs/use-external-names.yaml > %t.yaml
-// REQUIRES: shell
-
-#include "external-names.h"
-
-////
-// Preprocessor (__FILE__ macro and # directives):
-
-// RUN: %clang_cc1 -I %t -ivfsoverlay %t.external.yaml -E %s | FileCheck -check-prefix=CHECK-PP-EXTERNAL %s
-// CHECK-PP-EXTERNAL: # {{[0-9]*}} "[[NAME:.*Inputs.external-names.h]]"
-// CHECK-PP-EXTERNAL-NEXT: void foo(char **c) {
-// CHECK-PP-EXTERNAL-NEXT: *c = "[[NAME]]";
-
-// RUN: %clang_cc1 -I %t -ivfsoverlay %t.yaml -E %s | FileCheck -check-prefix=CHECK-PP %s
-// CHECK-PP-NOT: Inputs
-
-////
-// Diagnostics:
-
-// RUN: %clang_cc1 -I %t -ivfsoverlay %t.external.yaml -fsyntax-only %s 2>&1 | FileCheck -check-prefix=CHECK-DIAG-EXTERNAL %s
-// CHECK-DIAG-EXTERNAL: {{.*}}Inputs{{.}}external-names.h:{{[0-9]*:[0-9]*}}: warning: incompatible pointer
-
-// RUN: %clang_cc1 -I %t -ivfsoverlay %t.yaml -fsyntax-only %s 2>&1 | FileCheck -check-prefix=CHECK-DIAG %s
-// CHECK-DIAG-NOT: Inputs
-
-////
-// Debug info
-
-// RUN: %clang_cc1 -I %t -ivfsoverlay %t.external.yaml -triple %itanium_abi_triple -g -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-DEBUG-EXTERNAL %s
-// CHECK-DEBUG-EXTERNAL: ![[Num:[0-9]*]] = metadata !{metadata !"{{.*}}Inputs{{.}}external-names.h
-// CHECK-DEBUG-EXTERNAL: metadata !{i32 {{[0-9]*}}, metadata ![[Num]]{{.*}}DW_TAG_file_type
-
-// RUN: %clang_cc1 -I %t -ivfsoverlay %t.yaml -triple %itanium_abi_triple -g -emit-llvm %s -o - | FileCheck -check-prefix=CHECK-DEBUG %s
-// CHECK-DEBUG-NOT: Inputs
Modified: cfe/trunk/unittests/Basic/FileManagerTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Basic/FileManagerTest.cpp?rev=202443&r1=202442&r2=202443&view=diff
==============================================================================
--- cfe/trunk/unittests/Basic/FileManagerTest.cpp (original)
+++ cfe/trunk/unittests/Basic/FileManagerTest.cpp Thu Feb 27 17:48:03 2014
@@ -30,7 +30,6 @@ private:
FileData Data;
memset(&Data, 0, sizeof(FileData));
llvm::sys::fs::UniqueID ID(1, INode);
- Data.Name = Path;
Data.UniqueID = ID;
Data.IsDirectory = !IsFile;
StatCalls[Path] = Data;
More information about the cfe-commits
mailing list