STL_MSFT added a comment.

This will definitely help us clean up our code, since we run the MSVC STL test 
suite with `-fno-ms-compatibility -fno-delayed-template-parsing`.

Other possible occurrences of ms-extensions that should be considered 
ms-compatibility:

- ParseDeclCXX.cpp says "MSVC permits pure specifier on inline functions 
defined at class scope." which sounds like a rule relaxation.
- Parser.cpp says "MS compatibility: MSVC permits using known types with 
typename. e.g. "typedef typename T* pointer_type"" while downgrading an error 
to a warning. Seems like this should be ms-compatibility.
- SemaCast.cpp says "C++ 5.2.10p4: A pointer can be explicitly converted to any 
integral type large enough to hold it; except in Microsoft mode, where the 
integral type size doesn't matter (except we don't allow bool)." This 
definitely seems like ms-compatibility.
- ParseExprCXX.cpp says "We have something like t::getAs<T>, where getAs is a 
member of an unknown specialization. However, this will only parse correctly as 
a template, so suggest the keyword 'template' before 'getAs' and treat this as 
a dependent template name." while downgrading an error to a warning.

I might regret asking about some of these, if Clang begins erroring on WinSDK 
etc. code that can't be rapidly updated.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D66770



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

Reply via email to