summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/TextDiagnostic.cpp
diff options
context:
space:
mode:
authorYunzhong Gao <Yunzhong_Gao@playstation.sony.com>2014-03-07 00:23:36 +0000
committerYunzhong Gao <Yunzhong_Gao@playstation.sony.com>2014-03-07 00:23:36 +0000
commit820c687e9e1f376f61dd0753569ef896458a43e0 (patch)
tree119a5d0286a3845bf38af37dd3464629da4d4bf4 /clang/lib/Frontend/TextDiagnostic.cpp
parent211cd8ccb77a2eabca0ffbf392ab9b7b37a39f84 (diff)
downloadbcm5719-llvm-820c687e9e1f376f61dd0753569ef896458a43e0.tar.gz
bcm5719-llvm-820c687e9e1f376f61dd0753569ef896458a43e0.zip
The Visual Studio IDE changed behavior in VS2012. It used to be the case that
the clang diagnostic has to report a column number one less than the correct value in order for the IDE to move the cursor to the expected location. This behavior is changed in VS2012 and VS2013 so that the IDE is now expecting the column number to match the actual source location. Before: source(line, column-1): type: message After: source(line, column): type: message This patch changes -fdiagnostics-format=msvc to match the new VS2012 and VS2013 when fmsc-version is 1700 or greater. Differential Revision: http://llvm-reviews.chandlerc.com/D2949 llvm-svn: 203183
Diffstat (limited to 'clang/lib/Frontend/TextDiagnostic.cpp')
-rw-r--r--clang/lib/Frontend/TextDiagnostic.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Frontend/TextDiagnostic.cpp b/clang/lib/Frontend/TextDiagnostic.cpp
index ad13a92dcdc..4c90d01918c 100644
--- a/clang/lib/Frontend/TextDiagnostic.cpp
+++ b/clang/lib/Frontend/TextDiagnostic.cpp
@@ -812,7 +812,9 @@ void TextDiagnostic::emitDiagnosticLoc(SourceLocation Loc, PresumedLoc PLoc,
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;
OpenPOWER on IntegriCloud