arphaman marked 2 inline comments as done.
arphaman added a comment.

In https://reviews.llvm.org/D40983#958809, @bruno wrote:

> Hi Alex,
>
> Thanks for improving this.
>
> - Instead of adding `-cc1gen-reproducer`, why can't you run that through 
> `-cc1` and have a flag similar to `-###`, which just prints the reproducer 
> line?


It would be difficult to add this logic to the regular `-cc1`, as it would need 
to construct a real compiler invocation on top of the pseudo one which takes 
the libclang invocation file (because it has to load the actual compiler 
arguments from the libclang file). This would be difficult and quite disruptive 
to the code in the cc1 driver and the compiler invocation. The approach in this 
patch is much simpler to implement and maintain, and does not disrupt the code 
in the `cc1` driver. This patch makes it more of a tool rather than a clang 
driver invocation.

> - I didn't  understand how you can use the final output information, can you 
> give an example to illustrate?

Given a sample output like:

REPRODUCER:
{
 "files":["/tmp/a.c","/tmp/a.sh"]
}

The tool's client (also a libclang client) will parse the JSON object with the 
files that make up the reproducer. It will then be able to do whatever it needs 
with those specific files.



================
Comment at: include/clang/Driver/Driver.h:394
+  struct CompilationDiagnosticReport {
+    std::vector<std::string> TemporaryFiles;
+  };
----------------
bruno wrote:
> I assume the number of temporary files are usually small, can you switch to 
> SmallVector here?
Yep.


Repository:
  rC Clang

https://reviews.llvm.org/D40983



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

Reply via email to