aaron.ballman added a comment.

In D131465#3823599 <https://reviews.llvm.org/D131465#3823599>, @hans wrote:

> In D131465#3821701 <https://reviews.llvm.org/D131465#3821701>, @aaron.ballman 
> wrote:
>
>> Perhaps the simple rule we're going for is "when executed on Windows, Clang 
>> defaults to C++17 unless it is executed from a context in which an MSVC 
>> library can be detected, in which case Clang defaults to the same language 
>> standard as used by that version of MSVC"? It's a bit long-winded, but the 
>> idea being that we try to match MSVC's default when compiling against MSVC 
>> libraries and otherwise stick with the clang default.
>
> But the last sentence is basically what we have today. When targeting 
> windows-msvc, we try to match the behavior of the msvc version being 
> targeted, which is in turn determined by what flags the user passes, what 
> msvc installation is found in the environment, or the default (19.14).

Hmmm, you're right. I think I may have confused myself with the behaviors here 
-- MSVC still reports `__cplusplus` as `199711L` but they seem to accept a 
random smattering of C++17 by default and mostly accept C++14, at least from 
some simple testing: https://godbolt.org/z/dxjq5Wocx

So it's a bit hard to say what kind of compatibility we're aiming for there...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131465/new/

https://reviews.llvm.org/D131465

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to