sammccall accepted this revision.
sammccall added inline comments.
This revision is now accepted and ready to land.


================
Comment at: llvm/include/llvm/Support/CommandLine.h:1972
+/// \param [in] CurrentDir Path used to resolve relative rsp files when \p
+/// RelativeNames is set to true, when set to None, process' cwd is used
+/// instead.
----------------
This seems confusing.
Suppose we have `@x/a`, which includes `@y/b`

Relative=true, CurrentDir=none: we read ./x/y/b
Relative=true, CurrentDir=foo: we read foo/x/y/b
Relative=false, CurrentDir=none: we read ./y/b
Relative=false, CurrentDir=foo: we read... ./y/b?

Seems like it would be clearer to just say relative paths are relative to this 
directory, so the last one would be foo/y/b.

Actually looking at the code, I think that's what you implemented?


================
Comment at: llvm/lib/Support/CommandLine.cpp:1105
+    SmallString<128> ResponseFile;
+    llvm::sys::path::append(ResponseFile, "@", BasePath, FileName);
+    Arg = Saver.save(ResponseFile.c_str()).data();
----------------
This is @/BasePath I think (args are segments).

(I think this means you were running the wrong tests)


================
Comment at: llvm/lib/Support/CommandLine.cpp:1183
             ExpandResponseFile(FName, Saver, Tokenizer, ExpandedArgv, MarkEOLs,
-                               RelativeNames, FS)) {
+                               RelativeNames, FS, CurrentDir)) {
       // We couldn't read this file, so we leave it in the argument stream and
----------------
this is subtle, consider a comment: CurrentDir is only relevant for "top-level" 
expansions || !RelativeNames, but nested ones always have absolute paths if 
RelativeNames so CurrentDir is ignored.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70857/new/

https://reviews.llvm.org/D70857



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to