<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Clang should default to -fms-compatibility-version=19.11"
   href="https://bugs.llvm.org/show_bug.cgi?id=34243">34243</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Clang should default to -fms-compatibility-version=19.11
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Windows NT
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>-New Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>sfinae@hotmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre><a href="https://github.com/llvm-mirror/clang/blob/948113089e026114699a517bacf0a85987f6a5c8/lib/Driver/ToolChains/MSVC.cpp#L1232">https://github.com/llvm-mirror/clang/blob/948113089e026114699a517bacf0a85987f6a5c8/lib/Driver/ToolChains/MSVC.cpp#L1232</a>
is where Clang defaults to imitating MSVC 18.00 (VS 2013's toolset). That's
seriously old (Clang 3.3 was released in 2013). Perhaps now would be a good
time to update this default to MSVC 19.11 (VS 2017 15.3's toolset), and
establish a policy of updating this default to the latest released MSVC
toolset.

Additionally,
<a href="https://github.com/llvm-mirror/clang/blob/7cf32f297706a8e2c9d60c258cdd3d28860b9cf1/lib/Driver/ToolChains/Clang.cpp#L3842">https://github.com/llvm-mirror/clang/blob/7cf32f297706a8e2c9d60c258cdd3d28860b9cf1/lib/Driver/ToolChains/Clang.cpp#L3842</a>
says that "-fno-delayed-template-parsing is default, except for Windows where
MSVC STL needs it." MSVC's STL is now two-phase clean, validated by Clang
itself, and has been for quite some time (previously we used EDG to validate
this, and fixed many issues over the years). While the MSVC compiler is still
migrating to two-phase (currently there's partial support controlled by a
compiler option which isn't the default yet), our STL is ready. Note that other
libraries (ATL etc.) are still undergoing two-phase cleaning, so I don't know
if Clang users tend to expect compatibility or conformance.

Similarly, MSVC's STL is now -fno-ms-compatibility clean, although not all MS
libraries are. (We're trying to purge all unnecessary non-Standard code,
including in the WinSDK.)</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>