llvm-project/clang/test/CodeGenObjCXX
Saleem Abdulrasool f3a981e801 AST: add missing ObjC extensions to MS style name decoration
Add support for encoding type arguments for lightweight generics in
Objective-C++ mode.  Additionally, add support for the `__kindof` modifier.
This should complete the coverage of the ObjC extensions that clang currently
supports under the MS style name decoration scheme.

This is implemented similar to the Objective-C lifetime qualifiers decoration:
a template specialization in the `__ObjC` namespace so that we can interoperate
with Microsoft's tools as well as ensure that we do not accidentally collide
with new features in the Microsoft implementation.

Since the `__kindof` appertains to the type and not the pointer, we apply the
template specialization to the underlying type instead of the pointer type.

Unfortunately, until D52581 is resolved, the generated name is not really
compatible with the MS tools as well as breaks interoperability with
Objective-C++ and C++.

This resolves PR37754!

llvm-svn: 343338
2018-09-28 16:47:53 +00:00
..
Inputs
2007-10-03-MetadataPointers.mm
2010-08-04-Template.mm
2010-08-06-X.Y-syntax.mm
address-safety-attr.mm
arc-attrs-abi.mm Represent pass_object_size attrs in ExtParameterInfo 2017-02-24 02:49:47 +00:00
arc-attrs.mm Forward ns_consumed delegate arguments with a move. 2016-11-18 01:08:24 +00:00
arc-blocks.mm Revert r341754. 2018-09-09 05:22:49 +00:00
arc-constexpr.mm [CodeGen][ObjC] Do not call objc_storeStrong when initializing a 2016-10-18 19:05:41 +00:00
arc-cxx11-init-list.mm Disable -fmerge-all-constants as default. 2018-04-05 15:29:52 +00:00
arc-cxx11-member-init.mm
arc-exceptions.mm Change memcpy/memove/memset to have dest and source alignment attributes (Step 1). 2018-01-19 17:12:54 +00:00
arc-forwarded-lambda-call.mm [CodeGen] Avoid destructing a callee-destructued struct type in a 2018-04-27 06:57:00 +00:00
arc-globals.mm Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
arc-indirect.mm test: fix test for release builds 2017-06-27 18:57:50 +00:00
arc-list-init-destruct.mm [Sema] Check that the destructor for each element of class type is 2018-09-07 02:38:01 +00:00
arc-mangle.mm Mangle __unaligned in Itanium ABI 2017-06-02 07:14:34 +00:00
arc-marker-funclet.mm Add Windows support for the GNUstep Objective-C ABI V2. 2018-08-10 12:53:13 +00:00
arc-move.mm Update for lifetime intrinsic signature change 2017-04-10 20:18:45 +00:00
arc-new-delete.mm Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
arc-pseudo-destructors.mm
arc-references.mm [ObjC] Fix lifetime markers of loop variable in EmitObjCForCollectionStmt [take 2] 2017-04-14 16:53:25 +00:00
arc-returns-inner-reference-ptr.mm
arc-special-member-functions.mm [CodeGen] Avoid destructing a callee-destructued struct type in a 2018-04-27 06:57:00 +00:00
arc-weak.mm Correctly handle type mismatches in the __weak copy/move-initialization 2015-11-16 22:11:41 +00:00
arc.mm Update for lifetime intrinsic signature change 2017-04-10 20:18:45 +00:00
auto-release-result-assert.mm [CodeGen] Fix an assert in CodeGenFunction::EmitFunctionEpilog 2016-02-17 21:09:50 +00:00
block-default-arg.mm [CodeGenObjCXX] Don't rematerialize default arguments of function 2016-05-02 21:52:57 +00:00
block-id.mm
block-in-template-inst.mm
block-nested-in-lambda.mm [CodeGen] Look at the type of a block capture field rather than the type 2018-08-22 13:41:19 +00:00
block-var-layout.mm Fix and stylize the emission of GC/ARC ivar and GC block layout strings. 2015-10-21 18:06:47 +00:00
blocks.mm Reapply "[CodeGen] Fix assignments of inline layouts into the byref structure" 2015-12-21 20:21:15 +00:00
boxing.mm ObjCBoxedExpr can't be evaluated by the constant expression evaluator. 2017-04-29 00:07:27 +00:00
catch-id-type.mm
copy.mm Replace Sema-level implementation of -fassume-sane-operator-new with a 2016-04-07 21:46:12 +00:00
copyable-property-object.mm
debug-info-block-capture-this.mm DebugInfo: Adapt to loss of DITypeRef in LLVM r267296 2016-04-23 21:08:27 +00:00
debug-info-cyclic.mm DebugInfo: pass alignment value only if it was forced 2016-10-20 00:13:19 +00:00
debug-info-line.mm [DEBUGINFO] Add support for emission of the debug directives only. 2018-08-31 13:56:14 +00:00
debug-info.mm Stop messing with the 'g' group of options in CompilerInvocation. 2015-10-08 04:24:12 +00:00
designated-initializers.mm
destroy.mm Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'. 2016-12-23 00:23:01 +00:00
encode.mm [test] Make Lit tests C++11 Compatible - Objective-C++ 2017-02-13 23:09:56 +00:00
exception-cxx.mm [test] Specify exception object type in two tests 2015-09-11 17:39:34 +00:00
exceptions-legacy.mm Update clang unittests for rL281586. 2016-09-15 06:31:30 +00:00
exceptions.mm
externally-initialized-selectors.mm
foreach-statement.mm
gc.mm
implementation-in-extern-c.mm
implicit-copy-assign-operator.mm
implicit-copy-constructor.mm Remove custom handling of array copies in lambda by-value array capture and 2016-12-14 00:03:17 +00:00
instantiate-return.mm [Sema][ObjC] Ensure that the return type of an ObjC method is a complete 2018-04-12 06:01:41 +00:00
ivar-objects.mm
lambda-expressions.mm [CodeGen] Avoid destructing a callee-destructued struct type in a 2018-04-27 06:57:00 +00:00
lambda-to-block.mm [CodeGen] Merge equivalent block copy/helper functions. 2018-08-10 15:09:24 +00:00
literals.mm Add missing temporary materialization conversion on left-hand side of . 2018-07-27 17:13:18 +00:00
lvalue-reference-getter.mm
mangle-blocks.mm Fix off-by-one error in block mangling. 2017-09-07 05:41:24 +00:00
mangle.mm Fix mangled name of method with ns_consumed parameters. 2016-05-25 14:15:08 +00:00
message-reference.mm
message.mm
method-local-extern-mangle.mm
microsoft-abi-arc-param-order.mm Add Windows support for the GNUstep Objective-C ABI V2. 2018-08-10 12:53:13 +00:00
mrc-weak.mm [CodeGen] Merge equivalent block copy/helper functions. 2018-08-10 15:09:24 +00:00
msabi-objc-extensions.mm AST: add missing ObjC extensions to MS style name decoration 2018-09-28 16:47:53 +00:00
msabi-objc-types.mm Add Windows support for the GNUstep Objective-C ABI V2. 2018-08-10 12:53:13 +00:00
msabi-stret.mm CodeGenObjCXX: handle inalloca appropriately for msgSend variant 2018-02-28 20:16:12 +00:00
nested-ehlocation.mm Stop messing with the 'g' group of options in CompilerInvocation. 2015-10-08 04:24:12 +00:00
nrvo.mm
objc-container-subscripting-1.mm
objc-container-subscripting.mm
objc-struct-cxx-abi.mm [ObjC++] Never pass structs that transitively contain __weak fields in 2018-04-09 22:48:22 +00:00
objc-weak.mm [Objective-C] C++ Classes with __weak Members non-POD Types when using -fobjc-weak 2017-03-29 17:31:42 +00:00
objfw-exceptions.mm [ObjC++] Use the correct EH personality in GNU mode 2017-04-01 17:59:01 +00:00
personality-abuse.mm Fix broken tests from no-jump-table commit 2016-04-05 18:59:37 +00:00
personality.mm [CodeGen] Always use MSVC personality for windows-msvc targets 2018-06-08 00:41:01 +00:00
pr14474-gline-tables-only.mm [DEBUGINFO] Add support for emission of the debug directives only. 2018-08-31 13:56:14 +00:00
property-derived-to-base-conv.mm
property-dot-copy-elision.mm [ObjC++] Make parameter passing and function return compatible with ObjC 2018-03-28 21:13:14 +00:00
property-dot-copy.mm
property-dot-reference.mm
property-lvalue-capture.mm Compute and preserve alignment more faithfully in IR-generation. 2015-09-08 08:05:57 +00:00
property-object-conditional-exp.mm Compute and preserve alignment more faithfully in IR-generation. 2015-09-08 08:05:57 +00:00
property-object-reference-1.mm
property-object-reference-2.mm Re-commit r282556, reverted in r282564, with a fix to CallArgList::addFrom to 2016-09-28 19:09:10 +00:00
property-object-reference.mm
property-objects.mm [CodeGen] Ignore OpaqueValueExprs that are unique references to their 2018-03-20 01:47:58 +00:00
property-reference.mm
refence-assign-write-barrier.mm
references.mm
return.mm Add -f[no-]strict-return flag that can be used to avoid undefined behaviour 2017-01-04 13:40:34 +00:00
rtti.mm
selector-expr-lvalue.mm Let selector-expr-lvalue.mm actually test something. 2015-09-11 21:24:40 +00:00
subst-sel.mm
unknown-anytype.mm
write-barrier-global-assign.mm