[PATCH] D79553: [YAMLVFSWriter] Add explicit assert that every file has a parent dir

Jan Korous via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 6 22:42:17 PDT 2020


jkorous created this revision.
jkorous added a reviewer: JDevlieghere.
Herald added subscribers: llvm-commits, dexonsmith, hiraditya.
Herald added a project: LLVM.

This is a leftover from me poking the code. There's an implicit assumption that every file has a parent - which if violated blows up later in implementation of `containedIn()`. I don't have any reasonable reproducer except adding root ("/") as file to the mapping but that doesn't make much sense.

Unsure if this should land, happy to hear opinions.


https://reviews.llvm.org/D79553

Files:
  llvm/lib/Support/VirtualFileSystem.cpp


Index: llvm/lib/Support/VirtualFileSystem.cpp
===================================================================
--- llvm/lib/Support/VirtualFileSystem.cpp
+++ llvm/lib/Support/VirtualFileSystem.cpp
@@ -2028,8 +2028,13 @@
   if (!Entries.empty()) {
     const YAMLVFSEntry &Entry = Entries.front();
     bool first_entry_is_directory = Entry.IsDirectory;
-    StringRef Dir =
-        first_entry_is_directory ? Entry.VPath : path::parent_path(Entry.VPath);
+    StringRef Dir;
+    if (first_entry_is_directory) {
+      Dir = Entry.VPath;
+    } else {
+      Dir = path::parent_path(Entry.VPath);
+      assert(!Dir.empty() && "No parent directory");
+    }
     startDirectory(Dir);
 
     StringRef RPath = Entry.RPath;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79553.262546.patch
Type: text/x-patch
Size: 726 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200507/6660e335/attachment.bin>


More information about the llvm-commits mailing list