Sean,

Thanks for the fast reply. I answered some of your comments below. The 
remaining comments were fixed in the next patch (will upload it now).

Best regards,
Rafael Auler

================
Comment at: lib/Driver/Job.cpp:205
@@ +204,3 @@
+    ResponseFlag = Creator.getResponseFileFlag();
+    ResponseFlag += ResponseFile.data();
+    if (RespFileSup == Tool::RF_FileList)
----------------
silvas wrote:
> I don't think this is correct. ResponseFile.data() isn't guaranteed to be 0 
> terminated (and you don't want to embed that hidden assumption). Maybe use 
> .append(begin, end)?
Great observation. I'll change ResponseFile back to a const char * because, 
otherwise, I would need to copy it to a null-terminated string storage, since I 
may need to directly store it in the argv vector (which only contains 
null-terminated strings).

================
Comment at: lib/Driver/Job.cpp:216-232
@@ -104,16 +215,19 @@
+
+  for (size_t i = 0, e = Args.size(); i < e; ++i) {
+    const char *const Arg = Args[i];
 
     if (CrashReport) {
       if (int Skip = skipArgs(Arg)) {
         i += Skip - 1;
         continue;
       }
     }
 
     OS << ' ';
     PrintArg(OS, Arg, Quote);
 
     if (CrashReport && quoteNextArg(Arg) && i + 1 < e) {
       OS << ' ';
-      PrintArg(OS, Arguments[++i], true);
+      PrintArg(OS, Args[++i], true);
     }
   }
----------------
silvas wrote:
> This loop scares me. Could you clean this up in a separate patch? Or at least 
> add comment here for now.
Sure, will work on it in a separate patch.

================
Comment at: lib/Driver/Tools.h:531-537
@@ -441,1 +530,9 @@
+
+    ResponseFileSupport getResponseFilesSupport() const override {
+      return RF_Full;
+    }
+    llvm::sys::fs::WindowsEncodingMethod
+    getResponseFileEncoding() const override {
+      return llvm::sys::fs::WEM_CurrentCodePage;
+    }
   };
----------------
silvas wrote:
> This seems highly repetitive. Is there a way to reduce it?
> 
> Also, I'm not sure that it makes sense to have a method returning 
> WindowsEncodingMethod for a netbsd tool (same goes for most tools that have 
> no reason to run on windows).
WindowsEncodingMethod, when used for UNIX tools, covers the case where these 
tools run in MinGW environments (in a cross-compilation setup).

http://reviews.llvm.org/D4897



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to