1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin11 -fsyntax-only -fobjc-arc -fblocks -Wdealloc-in-category -verify %s 2*67e74705SXin Li// RUN: not %clang_cc1 -triple x86_64-apple-darwin11 -fsyntax-only -fobjc-arc -fblocks -Wdealloc-in-category -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s 3*67e74705SXin Li// rdar://11987838 4*67e74705SXin Li 5*67e74705SXin Li@protocol NSObject 6*67e74705SXin Li- dealloc; // expected-error {{return type must be correctly specified as 'void' under ARC, instead of 'id'}} 7*67e74705SXin Li// CHECK: fix-it:"{{.*}}":{6:3-6:3}:"(void)" 8*67e74705SXin Li@end 9*67e74705SXin Li 10*67e74705SXin Li@protocol Foo <NSObject> @end 11*67e74705SXin Li 12*67e74705SXin Li@interface Root <Foo> 13*67e74705SXin Li@end 14*67e74705SXin Li 15*67e74705SXin Li@interface Baz : Root { 16*67e74705SXin Li} 17*67e74705SXin Li@end 18*67e74705SXin Li 19*67e74705SXin Li@implementation Baz 20*67e74705SXin Li- (id) dealloc { // expected-error {{return type must be correctly specified as 'void' under ARC, instead of 'id'}} 21*67e74705SXin Li// CHECK: fix-it:"{{.*}}":{20:5-20:7}:"void" 22*67e74705SXin Li} 23*67e74705SXin Li 24*67e74705SXin Li@end 25*67e74705SXin Li 26*67e74705SXin Li// rdar://15397430 27*67e74705SXin Li@interface Base 28*67e74705SXin Li- (void)dealloc; 29*67e74705SXin Li@end 30*67e74705SXin Li 31*67e74705SXin Li@interface Subclass : Base 32*67e74705SXin Li@end 33*67e74705SXin Li 34*67e74705SXin Li@interface Subclass (CAT) 35*67e74705SXin Li- (void)dealloc; 36*67e74705SXin Li@end 37*67e74705SXin Li 38*67e74705SXin Li@implementation Subclass (CAT) 39*67e74705SXin Li- (void)dealloc { // expected-warning {{-dealloc is being overridden in a category}} 40*67e74705SXin Li} 41*67e74705SXin Li@end 42*67e74705SXin Li 43*67e74705SXin Li// rdar://15919775 44*67e74705SXin Li@interface NSObject @end 45*67e74705SXin Li@interface NSError:NSObject 46*67e74705SXin Li@end 47*67e74705SXin Li 48*67e74705SXin Li@interface NSError(CAT) 49*67e74705SXin Li- (NSError *)MCCopyAsPrimaryError __attribute__((objc_method_family(new))); 50*67e74705SXin Li@end 51*67e74705SXin Li@implementation NSError(CAT) 52*67e74705SXin Li- (NSError *)MCCopyAsPrimaryError { 53*67e74705SXin Li return 0; 54*67e74705SXin Li} 55*67e74705SXin Li@end 56