1*f4a2713aSLionel Sambuc// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s 2*f4a2713aSLionel Sambuc 3*f4a2713aSLionel Sambuc@interface PBXTrackableTaskManager @end 4*f4a2713aSLionel Sambuc 5*f4a2713aSLionel Sambuc@implementation PBXTrackableTaskManager 6*f4a2713aSLionel Sambuc- (id) init { return 0; } 7*f4a2713aSLionel Sambuc- (void) unregisterTask:(id) task { 8*f4a2713aSLionel Sambuc @synchronized (self) { 9*f4a2713aSLionel Sambuc id taskID = [task taskIdentifier]; // expected-warning {{method '-taskIdentifier' not found (return type defaults to 'id')}} 10*f4a2713aSLionel Sambuc } 11*f4a2713aSLionel Sambuc} 12*f4a2713aSLionel Sambuc@end 13*f4a2713aSLionel Sambuc 14*f4a2713aSLionel Sambuc 15*f4a2713aSLionel Sambucstruct x { int a; } b; 16*f4a2713aSLionel Sambuc 17*f4a2713aSLionel Sambucvoid test1() { 18*f4a2713aSLionel Sambuc @synchronized (b) { // expected-error {{@synchronized requires an Objective-C object type ('struct x' invalid)}} 19*f4a2713aSLionel Sambuc } 20*f4a2713aSLionel Sambuc 21*f4a2713aSLionel Sambuc @synchronized (42) { // expected-error {{@synchronized requires an Objective-C object type ('int' invalid)}} 22*f4a2713aSLionel Sambuc } 23*f4a2713aSLionel Sambuc} 24