summaryrefslogtreecommitdiffstats
path: root/clang/test/Misc/pragma-attribute-supported-attributes-list.test
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2018-10-04 15:49:42 +0000
committerLouis Dionne <ldionne@apple.com>2018-10-04 15:49:42 +0000
commitd269579a97b58bcff3dca0b2636e51c6446b4cbb (patch)
tree9ad6fa21e142e6b69b8084dbb6c6e06e97739cdd /clang/test/Misc/pragma-attribute-supported-attributes-list.test
parent9b1cc0121c2784ead432f0064f5ae4c3a81989cf (diff)
downloadbcm5719-llvm-d269579a97b58bcff3dca0b2636e51c6446b4cbb.tar.gz
bcm5719-llvm-d269579a97b58bcff3dca0b2636e51c6446b4cbb.zip
[clang] Add the exclude_from_explicit_instantiation attribute
Summary: This attribute allows excluding a member of a class template from being part of an explicit template instantiation of that class template. This also makes sure that code using such a member will not take for granted that an external instantiation exists in another translation unit. The attribute was discussed on cfe-dev at [1] and is primarily motivated by the removal of always_inline in libc++ to control what's part of the ABI (see links in [1]). [1]: http://lists.llvm.org/pipermail/cfe-dev/2018-August/059024.html rdar://problem/43428125 Reviewers: rsmith Subscribers: dexonsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D51789 llvm-svn: 343790
Diffstat (limited to 'clang/test/Misc/pragma-attribute-supported-attributes-list.test')
-rw-r--r--clang/test/Misc/pragma-attribute-supported-attributes-list.test3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/test/Misc/pragma-attribute-supported-attributes-list.test b/clang/test/Misc/pragma-attribute-supported-attributes-list.test
index f45d09764bb..0a54c6c05ad 100644
--- a/clang/test/Misc/pragma-attribute-supported-attributes-list.test
+++ b/clang/test/Misc/pragma-attribute-supported-attributes-list.test
@@ -2,7 +2,7 @@
// The number of supported attributes should never go down!
-// CHECK: #pragma clang attribute supports 128 attributes:
+// CHECK: #pragma clang attribute supports 129 attributes:
// CHECK-NEXT: AMDGPUFlatWorkGroupSize (SubjectMatchRule_function)
// CHECK-NEXT: AMDGPUNumSGPR (SubjectMatchRule_function)
// CHECK-NEXT: AMDGPUNumVGPR (SubjectMatchRule_function)
@@ -47,6 +47,7 @@
// CHECK-NEXT: DisableTailCalls (SubjectMatchRule_function, SubjectMatchRule_objc_method)
// CHECK-NEXT: EnableIf (SubjectMatchRule_function)
// CHECK-NEXT: EnumExtensibility (SubjectMatchRule_enum)
+// CHECK-NEXT: ExcludeFromExplicitInstantiation (SubjectMatchRule_variable, SubjectMatchRule_function, SubjectMatchRule_record)
// CHECK-NEXT: ExternalSourceSymbol ((SubjectMatchRule_record, SubjectMatchRule_enum, SubjectMatchRule_enum_constant, SubjectMatchRule_field, SubjectMatchRule_function, SubjectMatchRule_namespace, SubjectMatchRule_objc_category, SubjectMatchRule_objc_interface, SubjectMatchRule_objc_method, SubjectMatchRule_objc_property, SubjectMatchRule_objc_protocol, SubjectMatchRule_record, SubjectMatchRule_type_alias, SubjectMatchRule_variable))
// CHECK-NEXT: FlagEnum (SubjectMatchRule_enum)
// CHECK-NEXT: Flatten (SubjectMatchRule_function)
OpenPOWER on IntegriCloud