summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2017-02-01 17:37:28 +0000
committerAlex Lorenz <arphaman@gmail.com>2017-02-01 17:37:28 +0000
commit86d3232daf4f2ca56fa1f1de40df327101197931 (patch)
tree8ae2fc8a96821c65a9858ea85c0687a17a1832c8 /clang/test
parentd3820b66f2ee1f93d21d3deb39f61b295b113715 (diff)
downloadbcm5719-llvm-86d3232daf4f2ca56fa1f1de40df327101197931.tar.gz
bcm5719-llvm-86d3232daf4f2ca56fa1f1de40df327101197931.zip
[CodeGen][ObjC] Avoid asserting on block pointer types in
isPointerZeroInitializable rdar://30111891 llvm-svn: 293787
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/CodeGenObjC/block-ptr-type-crash.m28
1 files changed, 28 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjC/block-ptr-type-crash.m b/clang/test/CodeGenObjC/block-ptr-type-crash.m
new file mode 100644
index 00000000000..385d6458589
--- /dev/null
+++ b/clang/test/CodeGenObjC/block-ptr-type-crash.m
@@ -0,0 +1,28 @@
+// RUN: %clang_cc1 -Wno-objc-root-class -fblocks -o /dev/null -triple x86_64-- -emit-llvm %s
+// REQUIRES: asserts
+// Verify there is no assertion.
+
+// rdar://30111891
+
+typedef unsigned long long uint64_t;
+typedef enum AnEnum : uint64_t AnEnum;
+enum AnEnum: uint64_t {
+ AnEnumA
+};
+
+typedef void (^BlockType)();
+@interface MyClass
+@end
+@implementation MyClass
+- (void)_doStuff {
+ struct {
+ int identifier;
+ AnEnum type;
+ BlockType handler;
+ } var = {
+ "hello",
+ AnEnumA,
+ ((void *)0)
+ };
+}
+@end
OpenPOWER on IntegriCloud