[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / SemaObjC / property-not-lvalue.m
blob2bd5ff6153f52c54d0dc71f28639ceb774fe381c
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
3 typedef struct NSSize {
4                 int width;
5                 struct {
6                   int dim;
7                 } inner;
8 } NSSize;
10 typedef __attribute__((__ext_vector_type__(2))) float simd_float2;
12 @interface Foo  {
13         NSSize _size;
15 @property NSSize size;
16 @property simd_float2 f2;
17 @end
19 void foo(void) { 
20         Foo *f;
21         f.size.width = 2.2; // expected-error {{expression is not assignable}}
22         f.size.inner.dim = 200; // expected-error {{expression is not assignable}}
25 @interface Gorf  {
27 - (NSSize)size;
28 @end
30 @implementation Gorf
31 - (void)MyView_sharedInit {
32     self.size.width = 2.2; // expected-error {{expression is not assignable}}
34 - (NSSize)size {}
35 @end
37 // clang used to crash compiling this code.
38 void test(Foo *f) {
39   simd_float2 *v = &f.f2.xy; // expected-error {{cannot take the address of an rvalue}}