rnk added inline comments.
================ Comment at: lib/AST/MicrosoftMangle.cpp:2311-2314 + if (FT->canThrow()) + Out << 'Z'; + else + Out << "_E"; ---------------- zahen wrote: > zturner wrote: > > I knew that the mangling changed whenever a pointer to a `noexcept` > > function is passed as an argument, and we don't yet handle that, but I'm > > surprised to hear that they changed an existing mangling, since it's a hard > > ABI break. > > > > Do you know the major and minor version numbers that this changed in? I'd > > like to test it out for starters, but also since this is an ABI break we > > would need to put it behind `-fms-compatibility-version` and only mangle > > using the new scheme when the compatibility version is sufficiently high. > It's only when a function is used as a type. My original rathole was trying > to enumerate all of the places where that could be, but instead I settled on > "everywhere but the initial definition". It's why false is passed in the 4th > parameter on line 516. > > I've confirmed this changed in 15.5 so I'll use that as the compat version. I see existing code that uses this pattern: `getLangOpts().isCompatibleWithMSVC(LangOptions::MSVC2015)` The MSVCMajorVersion enum is symbolic, so I think you might have to multiply it by a hundred and modify LangOptions::isCompatibleWithMSVC to multiply by two fewer places. I guess to fit with the existing enums we'd say MSVC2017_5, even though that conflates VS and VC version numbers. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55685/new/ https://reviews.llvm.org/D55685 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits