simon_tatham marked an inline comment as done.
simon_tatham added inline comments.


================
Comment at: clang/lib/AST/FormatString.cpp:754
+          LO.isMSCompatibilityVersionSpecified() &&
+          !LO.isCompatibleWithMSVC(LangOptions::MSVC2015)) {
+        // The standard libraries before MSVC2015 didn't support the 'z' length
----------------
aaron.ballman wrote:
> I'd rather not see `isMSCompatibilityVersionSpecified()` be introduced, but 
> instead make `isCompatibleWithMSVC()` do the right thing when it's not 
> specified.
I tried making `isCompatibleWithMSVC` return true if `MSCompatibilityVersion == 
0` on the basis that it should be considered 'newest' rather than 'oldest'. 
That caused a lot of knock-on test failures which I don't really understand all 
of:
```    Clang :: CodeGenCXX/dllexport-no-dllexport-inlines.cpp
    Clang :: CodeGenCXX/exceptions-cxx-new.cpp
    Clang :: CodeGenCXX/mangle-ms-exception-spec.cpp
    Clang :: CodeGenCXX/msabi-blocks.cpp
    Clang :: Rewriter/properties.m
    Clang :: SemaCXX/microsoft-cxx0x.cpp
    Clang :: SemaCXX/pragma-init_seg.cpp
    Clang :: SemaCXX/warn-static-outside-class-definition.cpp
```
`mangle-ms-exception-spec.cpp` in particular looks as if it's expecting some 
kind of completely different mangling without any compatibility version.

Perhaps I should go with the existing behavior and make 'unspecified' keep 
defaulting to oldest rather than newest? I think in general the driver will not 
leave it unspecified, so perhaps it won't make much difference outside the test 
suite anyway. Hmmm.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D73457



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

Reply via email to