summaryrefslogtreecommitdiffstats
path: root/clang/test/Misc/pragma-attribute-supported-attributes-list.test
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@apple.com>2018-02-05 20:23:22 +0000
committerAkira Hatanaka <ahatanaka@apple.com>2018-02-05 20:23:22 +0000
commit02914dc1278cf9b472e9cd4357d641b5dd3f5834 (patch)
treeea2b88bc4177716dd38b8cacae2c87d7d90567ff /clang/test/Misc/pragma-attribute-supported-attributes-list.test
parent02f6845095ee1ea0e54824a650a8f4c5d0ffd156 (diff)
downloadbcm5719-llvm-02914dc1278cf9b472e9cd4357d641b5dd3f5834.tar.gz
bcm5719-llvm-02914dc1278cf9b472e9cd4357d641b5dd3f5834.zip
Add support for attribute 'trivial_abi'.
The 'trivial_abi' attribute can be applied to a C++ class, struct, or union. It makes special functions of the annotated class (the destructor and copy/move constructors) to be trivial for the purpose of calls and, as a result, enables the annotated class or containing classes to be passed or returned using the C ABI for the underlying type. When a type that is considered trivial for the purpose of calls despite having a non-trivial destructor (which happens only when the class type or one of its subobjects is a 'trivial_abi' class) is passed to a function, the callee is responsible for destroying the object. For more background, see the discussions that took place on the mailing list: http://lists.llvm.org/pipermail/cfe-dev/2017-November/055955.html http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20180101/thread.html#214043 rdar://problem/35204524 Differential Revision: https://reviews.llvm.org/D41039 llvm-svn: 324269
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 1171a2d3709..1004459e9a1 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 66 attributes:
+// CHECK: #pragma clang attribute supports 67 attributes:
// CHECK-NEXT: AMDGPUFlatWorkGroupSize (SubjectMatchRule_function)
// CHECK-NEXT: AMDGPUNumSGPR (SubjectMatchRule_function)
// CHECK-NEXT: AMDGPUNumVGPR (SubjectMatchRule_function)
@@ -66,6 +66,7 @@
// CHECK-NEXT: TLSModel (SubjectMatchRule_variable_is_thread_local)
// CHECK-NEXT: Target (SubjectMatchRule_function)
// CHECK-NEXT: TestTypestate (SubjectMatchRule_function_is_member)
+// CHECK-NEXT: TrivialABI (SubjectMatchRule_record)
// CHECK-NEXT: WarnUnusedResult (SubjectMatchRule_objc_method, SubjectMatchRule_enum, SubjectMatchRule_record, SubjectMatchRule_hasType_functionType)
// CHECK-NEXT: XRayInstrument (SubjectMatchRule_function, SubjectMatchRule_objc_method)
// CHECK-NEXT: XRayLogArgs (SubjectMatchRule_function, SubjectMatchRule_objc_method)
OpenPOWER on IntegriCloud