r201604 - clang-cl /fallback: emit a note when falling back
Reid Kleckner
rnk at google.com
Tue Feb 18 15:08:15 PST 2014
We don't generally emit notes that aren't attached to warnings. This seems
fine to me in this instance.
On Tue, Feb 18, 2014 at 1:42 PM, Hans Wennborg <hans at hanshq.net> wrote:
> Author: hans
> Date: Tue Feb 18 15:42:51 2014
> New Revision: 201604
>
> URL: http://llvm.org/viewvc/llvm-project?rev=201604&view=rev
> Log:
> clang-cl /fallback: emit a note when falling back
>
> This makes it a lot easier to see what's going on from the output.
>
> Modified:
> cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td
> cfe/trunk/include/clang/Driver/Job.h
> cfe/trunk/lib/Driver/Job.cpp
> cfe/trunk/test/Driver/cl-fallback.c
>
> Modified: cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td?rev=201604&r1=201603&r2=201604&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td (original)
> +++ cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td Tue Feb 18
> 15:42:51 2014
> @@ -170,4 +170,6 @@ def err_analyzer_config_multiple_values
> def err_drv_modules_validate_once_requires_timestamp : Error<
> "option '-fmodules-validate-once-per-build-session' requires "
> "'-fbuild-session-timestamp=<seconds since Epoch>'">;
> +
> +def note_drv_invoking_fallback : Note<"falling back to %0">;
> }
>
> Modified: cfe/trunk/include/clang/Driver/Job.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Job.h?rev=201604&r1=201603&r2=201604&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Driver/Job.h (original)
> +++ cfe/trunk/include/clang/Driver/Job.h Tue Feb 18 15:42:51 2014
> @@ -88,6 +88,8 @@ public:
> /// getCreator - Return the Tool which caused the creation of this job.
> const Tool &getCreator() const { return Creator; }
>
> + const char *getExecutable() const { return Executable; }
> +
> const llvm::opt::ArgStringList &getArguments() const { return
> Arguments; }
>
> static bool classof(const Job *J) {
>
> Modified: cfe/trunk/lib/Driver/Job.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Job.cpp?rev=201604&r1=201603&r2=201604&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Driver/Job.cpp (original)
> +++ cfe/trunk/lib/Driver/Job.cpp Tue Feb 18 15:42:51 2014
> @@ -7,7 +7,11 @@
> //
>
> //===----------------------------------------------------------------------===//
>
> +#include "clang/Driver/Driver.h"
> +#include "clang/Driver/DriverDiagnostic.h"
> #include "clang/Driver/Job.h"
> +#include "clang/Driver/Tool.h"
> +#include "clang/Driver/ToolChain.h"
> #include "llvm/ADT/STLExtras.h"
> #include "llvm/ADT/StringRef.h"
> #include "llvm/ADT/StringSwitch.h"
> @@ -159,6 +163,10 @@ int FallbackCommand::Execute(const Strin
> if (ExecutionFailed)
> *ExecutionFailed = false;
>
> + const Driver &D = getCreator().getToolChain().getDriver();
> + D.Diag(diag::note_drv_invoking_fallback).setForceEmit()
> + << Fallback->getExecutable();
> +
> int SecondaryStatus = Fallback->Execute(Redirects, ErrMsg,
> ExecutionFailed);
> return SecondaryStatus;
> }
>
> Modified: cfe/trunk/test/Driver/cl-fallback.c
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/cl-fallback.c?rev=201604&r1=201603&r2=201604&view=diff
>
> ==============================================================================
> --- cfe/trunk/test/Driver/cl-fallback.c (original)
> +++ cfe/trunk/test/Driver/cl-fallback.c Tue Feb 18 15:42:51 2014
> @@ -44,3 +44,9 @@
> // RUN: %clang_cl /fallback /P -### -- %s 2>&1 | FileCheck
> -check-prefix=P %s
> // P-NOT: ||
> // P-NOT: "cl.exe"
> +
> +// RUN: not %clang_cl /fallback /c -- %s 2>&1 | \
> +// RUN: FileCheck -check-prefix=ErrNote %s
> +// ErrNote: note: falling back to cl.exe
> +
> +#error "This fails to compile."
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140218/3afe558d/attachment.html>
More information about the cfe-commits
mailing list