File: weak-attr-ivar.m

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,998,520 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (83 lines) | stat: -rw-r--r-- 2,639 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// RUN: %clang_cc1 -fsyntax-only -verify %s

typedef signed char BOOL;
typedef unsigned int NSUInteger;
typedef struct _NSZone NSZone;
@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
@protocol NSObject
- (BOOL)isEqual:(id)object;
@end
@protocol NSCopying  - (id)copyWithZone:(NSZone *)zone;
@end
@protocol NSMutableCopying  - (id)mutableCopyWithZone:(NSZone *)zone;
@end
@protocol NSCoding  - (void)encodeWithCoder:(NSCoder *)aCoder;
@end
@interface NSObject <NSObject> {}
@end
extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);
typedef struct {
  id *itemsPtr;
  unsigned long *mutationsPtr;
} NSFastEnumerationState;
@protocol NSFastEnumeration
- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len;
@end
@class NSString;
@interface NSArray : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration>  - (NSUInteger)count;
@end
@interface NSMutableArray : NSArray  - (void)addObject:(id)anObject;
@end
extern NSString * const NSUndoManagerCheckpointNotification;
@interface NSValueTransformer : NSObject {} @end
@class FooModel;
@interface FooObject : NSObject <NSCopying> {}
@end
@interface FooNode : FooObject {}
- (NSArray *) children;
@end
typedef enum { Foo_HUH_NONE } FooHUHCode;
@interface FooPlaypenEntry : FooNode {
  NSMutableArray *_interestingChildren;
  FooHUHCode _HUH;
  __attribute__((objc_gc(weak))) FooPlaypenEntry *_mostInterestingChild;
  id _author;
}
@property(copy) NSString *author;
- (BOOL) isInteresting;
@end  NSString *FooHUHCodeToString(FooHUHCode HUH) { return 0; }
@interface FooHUHCodeToStringTransformer: NSValueTransformer {
}
@end  @implementation FooPlaypenEntry  @synthesize author = _author;
- (BOOL) isInteresting { return 1; }
- (NSArray *) interestingChildren {
  if (!_interestingChildren) {
    for (FooPlaypenEntry *child in [self children]) {
      if ([child isInteresting]) {
        if (!_mostInterestingChild)
          _mostInterestingChild = child;
        else if (child->_HUH > _mostInterestingChild->_HUH) 
          _mostInterestingChild = child;
      }
    }
  }
  return 0;
}
- (FooHUHCode) HUH {
  if (_HUH == Foo_HUH_NONE) {
    if (_mostInterestingChild)
      return [_mostInterestingChild HUH];
  }
  return 0;
}
@end

@interface Test1 {
@public
  id ivar __attribute__((objc_gc(weak)));
}
@property (assign) id prop __attribute((objc_gc(weak)));
@end
void test1(Test1 *t) {
  id *(__attribute__((objc_gc(strong))) x) = &t->ivar; // expected-warning {{initializing '__strong id *' with an expression of type '__weak id *' discards qualifiers}}
}