[PATCH] D134468: [Driver] Ignore -fmsc-version= -fms-compatibility-version= values smaller than 19

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 23 09:14:25 PDT 2022


aaron.ballman added a reviewer: clang-vendors.
aaron.ballman added a subscriber: andrew.w.kaylor.
aaron.ballman added a comment.

Adding clang-vendors for awareness as this has the potential to impact folks vending clang.

In D134468#3811882 <https://reviews.llvm.org/D134468#3811882>, @probinson wrote:

> These kinds of compatibility changes generally should get a Discourse post for better visibility.

Strong +1, this needs a community RFC to see if we have folks relying on this support. For example, Intel supports ICX as a drop-in replacement for cl, and I'm not certain what our MSVC compatibility requirements are (I'm trying to find out though; CC @andrew.w.kaylor 
for awareness).

In D134468#3810030 <https://reviews.llvm.org/D134468#3810030>, @hans wrote:

> I'm conflicted about this. I see where you're coming from, but I could imagine people using clang-cl with old VS versions e.g. to target old Windows. I agree we shouldn't go out of our way to support that, but do we think it's too much effort to keep the functionality we have (as defined by the lit tests) working?

I'm also conflicted -- what's the pain point we're trying to solve with these changes? It doesn't seem like maintenance is an actual burden in practice.

In D134468#3809713 <https://reviews.llvm.org/D134468#3809713>, @rnk wrote:

> If we do this, I'd like it to be a policy change. We should add a release note about dropping support for `-fmsc-version=N` for N<1900, and audit for other logic like this:
> https://github.com/llvm/llvm-project/blob/main/clang/lib/Sema/SemaDeclCXX.cpp#L6390

Do we have a policy written down anywhere for this? We have one for what versions of MSVC we'll support building LLVM with, but I don't think we have a policy for what versions of MSVC we'll support being compatible with. Given that we still have GCC compatibility hacks for GCC 4.2 (which we still report we emulate with the GNU version macros!) which came out in 2008, I'd like more motivation as for why we want to drop support for MSVC 2013 and a better understanding of how we decide when we no longer will support compatibility with an older compiler -- we should be able to communicate this to users so their expectations are set appropriately.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D134468



More information about the cfe-commits mailing list