type of generated call to super dealloc is 'void' and asserts if user's dealloc is not of 'void type. This rule must be enforced in clang front-end (with a fixit) if this is not the case, instead of asserting in CodeGen. // rdar://11987838 llvm-svn: 160993
26 lines
713 B
Objective-C
26 lines
713 B
Objective-C
// RUN: %clang_cc1 -triple x86_64-apple-darwin11 -fsyntax-only -fobjc-arc -fblocks -verify %s
|
|
// RUN: %clang_cc1 -triple x86_64-apple-darwin11 -fsyntax-only -fobjc-arc -fblocks -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s
|
|
// rdar://11987838
|
|
|
|
@protocol NSObject
|
|
- dealloc; // expected-error {{return type must be correctly specified as 'void' under ARC, instead of 'id'}}
|
|
// CHECK: fix-it:"{{.*}}":{6:3-6:3}:"(void)"
|
|
@end
|
|
|
|
@protocol Foo <NSObject> @end
|
|
|
|
@interface Root <Foo>
|
|
@end
|
|
|
|
@interface Baz : Root {
|
|
}
|
|
@end
|
|
|
|
@implementation Baz
|
|
- (id) dealloc { // expected-error {{return type must be correctly specified as 'void' under ARC, instead of 'id'}}
|
|
// CHECK: fix-it:"{{.*}}":{20:5-20:7}:"void"
|
|
}
|
|
|
|
@end
|
|
|