[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-17 Thread Reid Kleckner via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL349414: Update Microsoft name mangling scheme for exception specifiers in the type… (authored by rnk, committed by ). Herald added a subscriber: llvm-commits. Changed prior to commit:

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-17 Thread Zachary Henkel via Phabricator via cfe-commits
zahen added a comment. I don't have check-in permission, so I'd appreciate if someone could handle the actual commit. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55685/new/ https://reviews.llvm.org/D55685 ___ cfe-commits mailing list

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-17 Thread Reid Kleckner via Phabricator via cfe-commits
rnk accepted this revision. rnk added a comment. This revision is now accepted and ready to land. lgtm, thanks! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55685/new/ https://reviews.llvm.org/D55685 ___ cfe-commits mailing list

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-17 Thread Zachary Henkel via Phabricator via cfe-commits
zahen updated this revision to Diff 178490. zahen added a comment. Added support for msvc minor version as requested. Tied the updated mangling scheme to C++17 & compatibility mode > 1912 (15.5). Added additional tests. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55685/new/

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-14 Thread Zachary Henkel via Phabricator via cfe-commits
zahen added a comment. In D55685#1331810 , @zturner wrote: > BTW, as far as updating the demangler, as long as it doesn't crash or > generate an error on a valid `_E` mangling, that should be sufficient (with a > test). If you want bonus points you can

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-14 Thread Zachary Turner via Phabricator via cfe-commits
zturner added a comment. BTW, as far as updating the demangler, as long as it doesn't crash or generate an error on a valid `_E` mangling, that should be sufficient (with a test). If you want bonus points you can make it print out `noexcept` when you see the `_E`, but I won't require it as

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-14 Thread Reid Kleckner via Phabricator via cfe-commits
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

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-14 Thread Zachary Henkel via Phabricator via cfe-commits
zahen added a comment. In D55685#1330717 , @zturner wrote: > Also we still need to put this behind `-fms-compatibility-version`. Finally, > it would be nice if you could also update the demangler > (`llvm/lib/Demangle/MicrosoftDemangle.cpp`) This was

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-13 Thread Zachary Turner via Phabricator via cfe-commits
zturner added a comment. Also we still need to put this behind `-fms-compatibility-version`. Finally, it would be nice if you could also update the demangler (`llvm/lib/Demangle/MicrosoftDemangle.cpp`) Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55685/new/

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-13 Thread Zachary Turner via Phabricator via cfe-commits
zturner added a comment. Ahh I read the new test cases, and all of the test cases are about the case where `noexcept` function is a parameter, so maybe this is actually the case I was referring to. Can you add a test case for something like this: void f() noexcept { } I get this: 00A

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-13 Thread Zachary Turner via Phabricator via cfe-commits
zturner added inline comments. Comment at: lib/AST/MicrosoftMangle.cpp:2311-2314 + if (FT->canThrow()) +Out << 'Z'; + else +Out << "_E"; I knew that the mangling changed whenever a pointer to a `noexcept` function is passed as an argument, and we

[PATCH] D55685: Update Microsoft name mangling scheme for exception specifiers in the type system

2018-12-13 Thread Zachary Henkel via Phabricator via cfe-commits
zahen created this revision. zahen added reviewers: zturner, rnk. Herald added a subscriber: cfe-commits. The msvc exception specifier for noexcept function types has changed from the prior default of "Z" to "_E" if the function cannot throw when compiling with /std:C++17. Repository: rC