r263974 - clang-cl: With -fmsc-version=1900, use MSVS2015 diag formatting.

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 21 16:43:32 PDT 2016


Seems to have caused a bot failure:

http://lab.llvm.org:8011/builders/clang-x86-win2008-selfhost/builds/7039

The NOTRIPLE test appears to be picking up the version of MSVC from
that installed on the system, so this passes or fails depending on
which version of MSVC we find.

On Mon, Mar 21, 2016 at 12:44 PM, Nico Weber via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
> Author: nico
> Date: Mon Mar 21 14:44:18 2016
> New Revision: 263974
>
> URL: http://llvm.org/viewvc/llvm-project?rev=263974&view=rev
> Log:
> clang-cl: With -fmsc-version=1900, use MSVS2015 diag formatting.
>
> Modified:
>     cfe/trunk/lib/Driver/Tools.cpp
>     cfe/trunk/lib/Frontend/TextDiagnostic.cpp
>     cfe/trunk/test/Misc/diag-format.c
>
> Modified: cfe/trunk/lib/Driver/Tools.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=263974&r1=263973&r2=263974&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Driver/Tools.cpp (original)
> +++ cfe/trunk/lib/Driver/Tools.cpp Mon Mar 21 14:44:18 2016
> @@ -3257,6 +3257,7 @@ VersionTuple visualstudio::getMSVCVersio
>      if (Major || Minor || Micro)
>        return VersionTuple(Major, Minor, Micro);
>
> +    // FIXME: Consider bumping this to 19 (MSVC2015) soon.
>      return VersionTuple(18);
>    }
>    return VersionTuple();
>
> Modified: cfe/trunk/lib/Frontend/TextDiagnostic.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/TextDiagnostic.cpp?rev=263974&r1=263973&r2=263974&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Frontend/TextDiagnostic.cpp (original)
> +++ cfe/trunk/lib/Frontend/TextDiagnostic.cpp Mon Mar 21 14:44:18 2016
> @@ -819,7 +819,15 @@ void TextDiagnostic::emitDiagnosticLoc(S
>    switch (DiagOpts->getFormat()) {
>    case DiagnosticOptions::Clang:
>    case DiagnosticOptions::Vi:    OS << ':';    break;
> -  case DiagnosticOptions::MSVC:  OS << ") : "; break;
> +  case DiagnosticOptions::MSVC:
> +    // MSVC2013 and before print 'file(4) : error'. MSVC2015 gets rid of the
> +    // space and prints 'file(4): error'.
> +    OS << ')';
> +    if (LangOpts.MSCompatibilityVersion &&
> +        !LangOpts.isCompatibleWithMSVC(LangOptions::MSVC2015))
> +      OS << ' ';
> +    OS << ": ";
> +    break;
>    }
>
>    if (DiagOpts->ShowSourceRanges && !Ranges.empty()) {
>
> Modified: cfe/trunk/test/Misc/diag-format.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/diag-format.c?rev=263974&r1=263973&r2=263974&view=diff
> ==============================================================================
> --- cfe/trunk/test/Misc/diag-format.c (original)
> +++ cfe/trunk/test/Misc/diag-format.c Mon Mar 21 14:44:18 2016
> @@ -4,13 +4,15 @@
>  //
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -fmsc-version=1300  %s 2>&1 | FileCheck %s -check-prefix=MSVC2010
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -fms-compatibility-version=13.00  %s 2>&1 | FileCheck %s -check-prefix=MSVC2010
> -// RUN: %clang -fsyntax-only -fdiagnostics-format=msvc  %s 2>&1 | FileCheck %s -check-prefix=MSVC
> +// RUN: %clang -fsyntax-only -fdiagnostics-format=msvc  %s 2>&1 | FileCheck %s -check-prefix=MSVCNOTRIPLE
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -fmsc-version=1300 -target x86_64-pc-win32 %s 2>&1 | FileCheck %s -check-prefix=MSVC2010
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -fms-compatibility-version=13.00 -target x86_64-pc-win32 %s 2>&1 | FileCheck %s -check-prefix=MSVC2010
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -target x86_64-pc-win32 %s 2>&1 | FileCheck %s -check-prefix=MSVC
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -fmsc-version=1300 -target x86_64-pc-win32 -fshow-column %s 2>&1 | FileCheck %s -check-prefix=MSVC2010
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -fms-compatibility-version=13.00 -target x86_64-pc-win32 -fshow-column %s 2>&1 | FileCheck %s -check-prefix=MSVC2010
> -// RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -target x86_64-pc-win32 -fshow-column %s 2>&1 | FileCheck %s -check-prefix=MSVC
> +// RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -fmsc-version=1800 -target x86_64-pc-win32 -fshow-column %s 2>&1 | FileCheck %s -check-prefix=MSVC2013
> +// RN: %clang -fsyntax-only -fdiagnostics-format=msvc -target x86_64-pc-win32 -fshow-column %s 2>&1 | FileCheck %s -check-prefix=MSVC

Did you mean to leave this test disabled?

> +// RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -fmsc-version=1900 -target x86_64-pc-win32 -fshow-column %s 2>&1 | FileCheck %s -check-prefix=MSVC2015
>  //
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=vi    %s 2>&1 | FileCheck %s -check-prefix=VI
>  //
> @@ -20,11 +22,9 @@
>  //
>  // RUN: not %clang -fsyntax-only -Werror -fdiagnostics-format=msvc-fallback -fmsc-version=1300 %s 2>&1 | FileCheck %s -check-prefix=MSVC2010-FALLBACK
>  // RUN: not %clang -fsyntax-only -Werror -fdiagnostics-format=msvc-fallback -fms-compatibility-version=13.00 %s 2>&1 | FileCheck %s -check-prefix=MSVC2010-FALLBACK
> -// RUN: not %clang -fsyntax-only -Werror -fdiagnostics-format=msvc-fallback %s 2>&1 | FileCheck %s -check-prefix=MSVC-FALLBACK
> -
> -
> -
> -
> +// RUN: not %clang -fsyntax-only -Werror -fdiagnostics-format=msvc-fallback %s -fmsc-version=1800 2>&1 | FileCheck %s -check-prefix=MSVC2013-FALLBACK
> +// RN: not %clang -fsyntax-only -Werror -fdiagnostics-format=msvc-fallback %s 2>&1 | FileCheck %s -check-prefix=MSVC-FALLBACK

... and this one?

> +// RUN: not %clang -fsyntax-only -Werror -fdiagnostics-format=msvc-fallback %s -fmsc-version=1900 2>&1 | FileCheck %s -check-prefix=MSVC2015-FALLBACK
>
>
>
> @@ -36,10 +36,15 @@
>  #endif bad // extension!
>  // DEFAULT: {{.*}}:36:8: warning: extra tokens at end of #endif directive [-Wextra-tokens]
>  // MSVC2010: {{.*}}(36,7) : warning: extra tokens at end of #endif directive [-Wextra-tokens]
> +// MSVC2013: {{.*}}(36,8) : warning: extra tokens at end of #endif directive [-Wextra-tokens]
>  // MSVC: {{.*}}(36,8) : warning: extra tokens at end of #endif directive [-Wextra-tokens]
> +// MSVCNOTRIPLE: {{.*}}(36,8): warning: extra tokens at end of #endif directive [-Wextra-tokens]
> +// MSVC2015: {{.*}}(36,8): warning: extra tokens at end of #endif directive [-Wextra-tokens]
>  // VI: {{.*}} +36:8: warning: extra tokens at end of #endif directive [-Wextra-tokens]
> -// MSVC_ORIG: {{.*}}(36) : warning: extra tokens at end of #endif directive [-Wextra-tokens]
> +// MSVC_ORIG: {{.*}}(36): warning: extra tokens at end of #endif directive [-Wextra-tokens]
>  // NO_COLUMN: {{.*}}:36: warning: extra tokens at end of #endif directive [-Wextra-tokens]
>  // MSVC2010-FALLBACK: {{.*}}(36,7) : error(clang): extra tokens at end of #endif directive
> +// MSVC2013-FALLBACK: {{.*}}(36,8) : error(clang): extra tokens at end of #endif directive
>  // MSVC-FALLBACK: {{.*}}(36,8) : error(clang): extra tokens at end of #endif directive
> +// MSVC2015-FALLBACK: {{.*}}(36,8): error(clang): extra tokens at end of #endif directive
>  int x;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list