[PATCH] D42614: AST: support ObjC lifetime qualifiers in MS ABI

2018-02-10 Thread Saleem Abdulrasool via Phabricator via cfe-commits
compnerd closed this revision. compnerd added a comment. SVN r324701 Repository: rC Clang https://reviews.llvm.org/D42614 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D42614: AST: support ObjC lifetime qualifiers in MS ABI

2018-02-07 Thread John McCall via Phabricator via cfe-commits
rjmccall accepted this revision. rjmccall added a comment. This revision is now accepted and ready to land. In https://reviews.llvm.org/D42614#1001279, @compnerd wrote: > @rjmccall, I've updated the approach and no longer abuse the existing > decoration styles. This uses a custom namespace with

[PATCH] D42614: AST: support ObjC lifetime qualifiers in MS ABI

2018-02-07 Thread Saleem Abdulrasool via Phabricator via cfe-commits
compnerd added a comment. @rjmccall, I've updated the approach and no longer abuse the existing decoration styles. This uses a custom namespace with artificial types to differentiate the types. I've also ensured that the parameter types do not encode the type information. Repository: rC C

[PATCH] D42614: AST: support ObjC lifetime qualifiers in MS ABI

2018-02-07 Thread Saleem Abdulrasool via Phabricator via cfe-commits
compnerd updated this revision to Diff 133319. compnerd edited the summary of this revision. compnerd added a comment. Address comments from @rjmccall Repository: rC Clang https://reviews.llvm.org/D42614 Files: lib/AST/MicrosoftMangle.cpp test/CodeGenObjCXX/msabi-objc-extensions.mm tes

[PATCH] D42614: AST: support ObjC lifetime qualifiers in MS ABI

2018-01-29 Thread Saleem Abdulrasool via Phabricator via cfe-commits
compnerd added a comment. Yeah, Im afraid I cannot definitely say that will never be sensible. I think I would, in fact, prefer an alternative. I'm just not sure what is a good viable alternative, especially since we are constrained in what the grammar accepts. The desugaring of the `id` and

[PATCH] D42614: AST: support ObjC lifetime qualifiers in MS ABI

2018-01-29 Thread John McCall via Phabricator via cfe-commits
rjmccall added a comment. In https://reviews.llvm.org/D42614#990808, @compnerd wrote: > Hmm, the only thing that we could fake would be namespaces on the parameter > types. Is that better? I'm not tied to re-using the existing mangling. I'm just worried about re-using the existing mangling c

[PATCH] D42614: AST: support ObjC lifetime qualifiers in MS ABI

2018-01-29 Thread Saleem Abdulrasool via Phabricator via cfe-commits
compnerd added a comment. Hmm, the only thing that we could fake would be namespaces on the parameter types. Is that better? I'm not tied to re-using the existing mangling. Repository: rC Clang https://reviews.llvm.org/D42614 ___ cfe-commits m

[PATCH] D42614: AST: support ObjC lifetime qualifiers in MS ABI

2018-01-27 Thread John McCall via Phabricator via cfe-commits
rjmccall added a comment. It's not just that functions can't be overloaded on the parameter-variable type qualifier — it's not part of the function type at all, just like making a parameter 'const int' instead of 'int' is not part of the function type. I understand that MSVC mangles some thing

[PATCH] D42614: AST: support ObjC lifetime qualifiers in MS ABI

2018-01-27 Thread Shoaib Meenai via Phabricator via cfe-commits
smeenai added a comment. pin_ptr is technically not supposed to appear as a function parameter, and having it in that position can screw up demangling. Considering __strong is the default, it's probably not a good idea to map that one to pin_ptr; whichever qualifier is least likely to appear as

[PATCH] D42614: AST: support ObjC lifetime qualifiers in MS ABI

2018-01-27 Thread Saleem Abdulrasool via Phabricator via cfe-commits
compnerd created this revision. compnerd added a reviewer: rjmccall. Herald added a subscriber: cfe-commits. Add support for Objective C lifetime qualifiers in MS ABI. Because there is no formal way to add a custom extension on a pointer qualifier, re-use C++/CX (which is deprecated) and C++/CLI