[PATCH] Teach Clang how to use response files when calling other tools
Rafael Ávila de Espíndola
rafael.espindola at gmail.com
Wed Aug 27 10:01:01 PDT 2014
================
Comment at: include/clang/Driver/Job.h:87
@@ +86,3 @@
+ /// file, when it is used.
+ void PrintArgsWithRespFile(llvm::raw_ostream &OS,
+ const char *Terminator, bool Quote,
----------------
printArgsWithRespFile
================
Comment at: include/clang/Driver/Job.h:100
@@ +99,3 @@
+ /// limits (the maximum command line length).
+ bool NeedsResponseFile() const { return needsResponseFile; }
+
----------------
The function should be lowercase, the variable Uppercase.
================
Comment at: lib/Driver/Job.cpp:32
@@ +31,3 @@
+ Executable(_Executable), Arguments(_Arguments),
+ needsResponseFile(
+ !llvm::sys::argumentsFitWithinSystemLimits(_Arguments) &&
----------------
I wonder if we should say that the job needs a response file based only on llvm::sys::argumentsFitWithinSystemLimits and then emit an error if Creator.getResponseFilesSupport() says it is not supported.
================
Comment at: lib/Driver/Job.cpp:279
@@ +278,3 @@
+ if (needsResponseFile && ResponseFile.data() != nullptr) {
+ PrintArgsWithRespFile(OS, Terminator, Quote, CrashReport);
+ return;
----------------
The code in PrintArgsWithRespFile looks fairly duplicated with what just follows. Couldn't this just patch Arguments and use the existing code path?
http://reviews.llvm.org/D4897
More information about the cfe-commits
mailing list