Does this patch make sense from a design standpoint? Aren't these kinds of 
implicit dependencies the things that modularize is trying to get rid of in the 
first place? Why would we expend effort to enshrine them, when we can just 
detect them and emit an error?

  I've also made a few comments about the code, but I think the above design 
issue is more important.


================
Comment at: modularize/Modularize.cpp:281
@@ +280,3 @@
+      std::string File(
+        std::string("\"") + FileDependents[Index] + std::string("\""));
+      NewArgs.push_back(FileDependents[Index]);
----------------
Is the quoting here actually necessary? I don't think that there is a 
shell-escaping step after this.

================
Comment at: modularize/Modularize.cpp:292-294
@@ +291,5 @@
+    SmallVector<const char*, 256> Argv;
+    for (CommandLineArguments::const_iterator I = CLArgs.begin(),
+          E = CLArgs.end();
+        I != E; ++I)
+      Argv.push_back(I->c_str());
----------------
clang-format

================
Comment at: modularize/Modularize.cpp:287-302
@@ +286,18 @@
+  // Helper function for finding the input file in an arguments list.
+  llvm::StringRef findInputFile(const CommandLineArguments &CLArgs) {
+    OwningPtr<OptTable> Opts(createDriverOptTable());
+    const unsigned IncludedFlagsBitmask = options::CC1Option;
+    unsigned MissingArgIndex, MissingArgCount;
+    SmallVector<const char*, 256> Argv;
+    for (CommandLineArguments::const_iterator I = CLArgs.begin(),
+          E = CLArgs.end();
+        I != E; ++I)
+      Argv.push_back(I->c_str());
+    OwningPtr<InputArgList> Args(
+      Opts->ParseArgs(Argv.data(), Argv.data() + Argv.size(),
+                      MissingArgIndex, MissingArgCount,
+                      IncludedFlagsBitmask));
+    std::vector<std::string> Inputs = Args->getAllArgValues(OPT_INPUT);
+    return Inputs.back();
+  }
+  DependencyMap &Dependencies;
----------------
Does this function actually use any of the class members? It seems like it 
should be a free function.


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

Reply via email to