<div dir="ltr">LGTM</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Mar 5, 2014 at 4:07 PM, Yunzhong Gao <span dir="ltr"><<a href="mailto:Yunzhong_Gao@playstation.sony.com" target="_blank">Yunzhong_Gao@playstation.sony.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">  Hi Reid,<br>
  Yes that is doable. I can use a combination of -fdiagnostics-format=msvc -fmsc-version=1300 to get the old behavior.<br>
  I updated the patch.<br>
  - Gao<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D2949" target="_blank">http://llvm-reviews.chandlerc.com/D2949</a><br>
<br>
CHANGE SINCE LAST DIFF<br>
  <a href="http://llvm-reviews.chandlerc.com/D2949?vs=7518&id=7572#toc" target="_blank">http://llvm-reviews.chandlerc.com/D2949?vs=7518&id=7572#toc</a><br>
<br>
Files:<br>
  lib/Frontend/TextDiagnostic.cpp<br>
  test/Misc/diag-format.c<br>
<div class=""><br>
Index: lib/Frontend/TextDiagnostic.cpp<br>
===================================================================<br>
--- lib/Frontend/TextDiagnostic.cpp<br>
+++ lib/Frontend/TextDiagnostic.cpp<br>
</div>@@ -812,7 +812,9 @@<br>
<div class="">     if (unsigned ColNo = PLoc.getColumn()) {<br>
</div><div class="">       if (DiagOpts->getFormat() == DiagnosticOptions::Msvc) {<br>
</div>         OS << ',';<br>
-        ColNo--;<br>
+        // Visual Studio 2010 or earlier expects column number to be off by one<br>
+        if (LangOpts.MSCVersion && LangOpts.MSCVersion < 1700)<br>
+          ColNo--;<br>
       } else<br>
         OS << ':';<br>
       OS << ColNo;<br>
<div class="">Index: test/Misc/diag-format.c<br>
===================================================================<br>
--- test/Misc/diag-format.c<br>
+++ test/Misc/diag-format.c<br>
</div>@@ -2,8 +2,11 @@<br>
<div class=""> // RUN: %clang -fsyntax-only -fdiagnostics-format=clang %s 2>&1 | FileCheck %s -check-prefix=DEFAULT<br>
 // RUN: %clang -fsyntax-only -fdiagnostics-format=clang -target x86_64-pc-win32 %s 2>&1 | FileCheck %s -check-prefix=DEFAULT<br>
 //<br>
</div>+// RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -fmsc-version=1300  %s 2>&1 | FileCheck %s -check-prefix=MSVC2010<br>
<div class=""> // RUN: %clang -fsyntax-only -fdiagnostics-format=msvc  %s 2>&1 | FileCheck %s -check-prefix=MSVC<br>
</div>+// RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -fmsc-version=1300 -target x86_64-pc-win32 %s 2>&1 | FileCheck %s -check-prefix=MSVC2010<br>
<div class=""> // RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -target x86_64-pc-win32 %s 2>&1 | FileCheck %s -check-prefix=MSVC<br>
</div>+// 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<br>
<div class=""> // RUN: %clang -fsyntax-only -fdiagnostics-format=msvc -target x86_64-pc-win32 -fshow-column %s 2>&1 | FileCheck %s -check-prefix=MSVC<br>
 //<br>
 // RUN: %clang -fsyntax-only -fdiagnostics-format=vi    %s 2>&1 | FileCheck %s -check-prefix=VI<br>
</div>@@ -12,6 +15,7 @@<br>
<div class=""> //<br>
 // RUN: %clang -fsyntax-only -fno-show-column %s 2>&1 | FileCheck %s -check-prefix=NO_COLUMN<br>
</div> //<br>
+// RUN: not %clang -fsyntax-only -Werror -fdiagnostics-format=msvc-fallback -fmsc-version=1300 %s 2>&1 | FileCheck %s -check-prefix=MSVC2010-FALLBACK<br>
 // RUN: not %clang -fsyntax-only -Werror -fdiagnostics-format=msvc-fallback %s 2>&1 | FileCheck %s -check-prefix=MSVC-FALLBACK<br>
<br>
<br>
@@ -26,10 +30,12 @@<br>
<div class=""><br>
 #ifdef foo<br>
 #endif bad // extension!<br>
-// DEFAULT: {{.*}}:28:8: warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
-// MSVC: {{.*}}(28,7) : warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
-// VI: {{.*}} +28:8: warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
-// MSVC_ORIG: {{.*}}(28) : warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
-// NO_COLUMN: {{.*}}:28: warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
-// MSVC-FALLBACK: {{.*}}(28,7) : error(clang): extra tokens at end of #endif directive<br>
+// DEFAULT: {{.*}}:32:8: warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
+// MSVC2010: {{.*}}(32,7) : warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
+// MSVC: {{.*}}(32,8) : warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
+// VI: {{.*}} +32:8: warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
+// MSVC_ORIG: {{.*}}(32) : warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
+// NO_COLUMN: {{.*}}:32: warning: extra tokens at end of #endif directive [-Wextra-tokens]<br>
</div>+// MSVC2010-FALLBACK: {{.*}}(32,7) : error(clang): extra tokens at end of #endif directive<br>
<div class="HOEnZb"><div class="h5">+// MSVC-FALLBACK: {{.*}}(32,8) : error(clang): extra tokens at end of #endif directive<br>
 int x;<br>
</div></div></blockquote></div><br></div>