<div dir="ltr">We don't generally emit notes that aren't attached to warnings.  This seems fine to me in this instance.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Feb 18, 2014 at 1:42 PM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@hanshq.net" target="_blank">hans@hanshq.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: hans<br>
Date: Tue Feb 18 15:42:51 2014<br>
New Revision: 201604<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=201604&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=201604&view=rev</a><br>
Log:<br>
clang-cl /fallback: emit a note when falling back<br>
<br>
This makes it a lot easier to see what's going on from the output.<br>
<br>
Modified:<br>
    cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td<br>
    cfe/trunk/include/clang/Driver/Job.h<br>
    cfe/trunk/lib/Driver/Job.cpp<br>
    cfe/trunk/test/Driver/cl-fallback.c<br>
<br>
Modified: cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td?rev=201604&r1=201603&r2=201604&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td?rev=201604&r1=201603&r2=201604&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td (original)<br>
+++ cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td Tue Feb 18 15:42:51 2014<br>
@@ -170,4 +170,6 @@ def err_analyzer_config_multiple_values<br>
 def err_drv_modules_validate_once_requires_timestamp : Error<<br>
   "option '-fmodules-validate-once-per-build-session' requires "<br>
   "'-fbuild-session-timestamp=<seconds since Epoch>'">;<br>
+<br>
+def note_drv_invoking_fallback : Note<"falling back to %0">;<br>
 }<br>
<br>
Modified: cfe/trunk/include/clang/Driver/Job.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Job.h?rev=201604&r1=201603&r2=201604&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Job.h?rev=201604&r1=201603&r2=201604&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/include/clang/Driver/Job.h (original)<br>
+++ cfe/trunk/include/clang/Driver/Job.h Tue Feb 18 15:42:51 2014<br>
@@ -88,6 +88,8 @@ public:<br>
   /// getCreator - Return the Tool which caused the creation of this job.<br>
   const Tool &getCreator() const { return Creator; }<br>
<br>
+  const char *getExecutable() const { return Executable; }<br>
+<br>
   const llvm::opt::ArgStringList &getArguments() const { return Arguments; }<br>
<br>
   static bool classof(const Job *J) {<br>
<br>
Modified: cfe/trunk/lib/Driver/Job.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Job.cpp?rev=201604&r1=201603&r2=201604&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Job.cpp?rev=201604&r1=201603&r2=201604&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/lib/Driver/Job.cpp (original)<br>
+++ cfe/trunk/lib/Driver/Job.cpp Tue Feb 18 15:42:51 2014<br>
@@ -7,7 +7,11 @@<br>
 //<br>
 //===----------------------------------------------------------------------===//<br>
<br>
+#include "clang/Driver/Driver.h"<br>
+#include "clang/Driver/DriverDiagnostic.h"<br>
 #include "clang/Driver/Job.h"<br>
+#include "clang/Driver/Tool.h"<br>
+#include "clang/Driver/ToolChain.h"<br>
 #include "llvm/ADT/STLExtras.h"<br>
 #include "llvm/ADT/StringRef.h"<br>
 #include "llvm/ADT/StringSwitch.h"<br>
@@ -159,6 +163,10 @@ int FallbackCommand::Execute(const Strin<br>
   if (ExecutionFailed)<br>
     *ExecutionFailed = false;<br>
<br>
+  const Driver &D = getCreator().getToolChain().getDriver();<br>
+  D.Diag(diag::note_drv_invoking_fallback).setForceEmit()<br>
+      << Fallback->getExecutable();<br>
+<br>
   int SecondaryStatus = Fallback->Execute(Redirects, ErrMsg, ExecutionFailed);<br>
   return SecondaryStatus;<br>
 }<br>
<br>
Modified: cfe/trunk/test/Driver/cl-fallback.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/cl-fallback.c?rev=201604&r1=201603&r2=201604&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/cl-fallback.c?rev=201604&r1=201603&r2=201604&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/test/Driver/cl-fallback.c (original)<br>
+++ cfe/trunk/test/Driver/cl-fallback.c Tue Feb 18 15:42:51 2014<br>
@@ -44,3 +44,9 @@<br>
 // RUN: %clang_cl /fallback /P -### -- %s 2>&1 | FileCheck -check-prefix=P %s<br>
 // P-NOT: ||<br>
 // P-NOT: "cl.exe"<br>
+<br>
+// RUN: not %clang_cl /fallback /c -- %s 2>&1 | \<br>
+// RUN:     FileCheck -check-prefix=ErrNote %s<br>
+// ErrNote: note: falling back to cl.exe<br>
+<br>
+#error "This fails to compile."<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>