aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjCXX/sel-address.mm
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjCXX/sel-address.mm')
-rw-r--r--test/SemaObjCXX/sel-address.mm19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/SemaObjCXX/sel-address.mm b/test/SemaObjCXX/sel-address.mm
new file mode 100644
index 000000000000..a1209abd4e68
--- /dev/null
+++ b/test/SemaObjCXX/sel-address.mm
@@ -0,0 +1,19 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+// pr7390
+
+void f(const SEL& v2) {}
+void g(SEL* _Nonnull);
+void h() {
+ f(@selector(dealloc));
+
+ SEL s = @selector(dealloc);
+ SEL* ps = &s;
+
+ @selector(dealloc) = s; // expected-error {{expression is not assignable}}
+
+ SEL* ps2 = &@selector(dealloc);
+
+ // Shouldn't crash.
+ g(&@selector(foo));
+}
+