[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