LGTM
On Wed, Mar 5, 2014 at 4:07 PM, Yunzhong Gao < [email protected]> 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; >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
