[PATCH] Change -fdiagnostics-format=msvc column number to match VS2012 and VS2013

Reid Kleckner rnk at google.com
Thu Mar 6 16:16:33 PST 2014


LGTM


On Wed, Mar 5, 2014 at 4:07 PM, Yunzhong Gao <
Yunzhong_Gao at playstation.sony.com> wrote:

>   Hi Reid,
>   Yes that is doable. I can use a combination of -fdiagnostics-format=msvc
> -fmsc-version=1300 to get the old behavior.
>   I updated the patch.
>   - Gao
>
> http://llvm-reviews.chandlerc.com/D2949
>
> CHANGE SINCE LAST DIFF
>   http://llvm-reviews.chandlerc.com/D2949?vs=7518&id=7572#toc
>
> Files:
>   lib/Frontend/TextDiagnostic.cpp
>   test/Misc/diag-format.c
>
> Index: lib/Frontend/TextDiagnostic.cpp
> ===================================================================
> --- lib/Frontend/TextDiagnostic.cpp
> +++ lib/Frontend/TextDiagnostic.cpp
> @@ -812,7 +812,9 @@
>      if (unsigned ColNo = PLoc.getColumn()) {
>        if (DiagOpts->getFormat() == DiagnosticOptions::Msvc) {
>          OS << ',';
> -        ColNo--;
> +        // Visual Studio 2010 or earlier expects column number to be off
> by one
> +        if (LangOpts.MSCVersion && LangOpts.MSCVersion < 1700)
> +          ColNo--;
>        } else
>          OS << ':';
>        OS << ColNo;
> Index: test/Misc/diag-format.c
> ===================================================================
> --- test/Misc/diag-format.c
> +++ test/Misc/diag-format.c
> @@ -2,8 +2,11 @@
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=clang %s 2>&1 |
> FileCheck %s -check-prefix=DEFAULT
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=clang -target
> x86_64-pc-win32 %s 2>&1 | FileCheck %s -check-prefix=DEFAULT
>  //
> +// 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  %s 2>&1 |
> FileCheck %s -check-prefix=MSVC
> +// 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 -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 -target
> x86_64-pc-win32 -fshow-column %s 2>&1 | FileCheck %s -check-prefix=MSVC
>  //
>  // RUN: %clang -fsyntax-only -fdiagnostics-format=vi    %s 2>&1 |
> FileCheck %s -check-prefix=VI
> @@ -12,6 +15,7 @@
>  //
>  // RUN: %clang -fsyntax-only -fno-show-column %s 2>&1 | FileCheck %s
> -check-prefix=NO_COLUMN
>  //
> +// 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 %s 2>&1 | FileCheck %s
> -check-prefix=MSVC-FALLBACK
>
>
> @@ -26,10 +30,12 @@
>
>  #ifdef foo
>  #endif bad // extension!
> -// DEFAULT: {{.*}}:28:8: warning: extra tokens at end of #endif directive
> [-Wextra-tokens]
> -// MSVC: {{.*}}(28,7) : warning: extra tokens at end of #endif directive
> [-Wextra-tokens]
> -// VI: {{.*}} +28:8: warning: extra tokens at end of #endif directive
> [-Wextra-tokens]
> -// MSVC_ORIG: {{.*}}(28) : warning: extra tokens at end of #endif
> directive [-Wextra-tokens]
> -// NO_COLUMN: {{.*}}:28: warning: extra tokens at end of #endif directive
> [-Wextra-tokens]
> -// MSVC-FALLBACK: {{.*}}(28,7) : error(clang): extra tokens at end of
> #endif directive
> +// DEFAULT: {{.*}}:32:8: warning: extra tokens at end of #endif directive
> [-Wextra-tokens]
> +// MSVC2010: {{.*}}(32,7) : warning: extra tokens at end of #endif
> directive [-Wextra-tokens]
> +// MSVC: {{.*}}(32,8) : warning: extra tokens at end of #endif directive
> [-Wextra-tokens]
> +// VI: {{.*}} +32:8: warning: extra tokens at end of #endif directive
> [-Wextra-tokens]
> +// MSVC_ORIG: {{.*}}(32) : warning: extra tokens at end of #endif
> directive [-Wextra-tokens]
> +// NO_COLUMN: {{.*}}:32: warning: extra tokens at end of #endif directive
> [-Wextra-tokens]
> +// MSVC2010-FALLBACK: {{.*}}(32,7) : error(clang): extra tokens at end of
> #endif directive
> +// MSVC-FALLBACK: {{.*}}(32,8) : error(clang): extra tokens at end of
> #endif directive
>  int x;
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140306/c4907dad/attachment.html>


More information about the cfe-commits mailing list