xref: /llvm-project/clang/test/ARCMT/objcmt-designated-initializer.m (revision 4f2ecc6177068bd904f3745a4796e3b2c437605c)
1*4f2ecc61SArgyrios Kyrtzidis// RUN: rm -rf %t
2*4f2ecc61SArgyrios Kyrtzidis// RUN: %clang_cc1 -objcmt-migrate-designated-init %s -triple x86_64-apple-darwin11 -fobjc-arc -migrate -o %t.remap
3*4f2ecc61SArgyrios Kyrtzidis// RUN: c-arcmt-test %t.remap | arcmt-test -verify-transformed-files %s.result
4*4f2ecc61SArgyrios Kyrtzidis// RUN: %clang_cc1 -triple x86_64-apple-darwin11 -fsyntax-only -x objective-c -fobjc-arc %s.result
5*4f2ecc61SArgyrios Kyrtzidis
6*4f2ecc61SArgyrios Kyrtzidis#define NS_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
7*4f2ecc61SArgyrios Kyrtzidis
8*4f2ecc61SArgyrios Kyrtzidis@class NSString;
9*4f2ecc61SArgyrios Kyrtzidis
10*4f2ecc61SArgyrios Kyrtzidis@interface B1
11*4f2ecc61SArgyrios Kyrtzidis-(id)init;
12*4f2ecc61SArgyrios Kyrtzidis@end
13*4f2ecc61SArgyrios Kyrtzidis
14*4f2ecc61SArgyrios Kyrtzidis@interface S1 : B1
15*4f2ecc61SArgyrios Kyrtzidis-(id)initWithFoo:(NSString*)foo;
16*4f2ecc61SArgyrios Kyrtzidis@end
17*4f2ecc61SArgyrios Kyrtzidis
18*4f2ecc61SArgyrios Kyrtzidis@implementation S1
19*4f2ecc61SArgyrios Kyrtzidis-(id)initWithFoo:(NSString*)foo
20*4f2ecc61SArgyrios Kyrtzidis{
21*4f2ecc61SArgyrios Kyrtzidis  self = [super init];
22*4f2ecc61SArgyrios Kyrtzidis  if (self) {
23*4f2ecc61SArgyrios Kyrtzidis  }
24*4f2ecc61SArgyrios Kyrtzidis  return self;
25*4f2ecc61SArgyrios Kyrtzidis}
26*4f2ecc61SArgyrios Kyrtzidis@end
27*4f2ecc61SArgyrios Kyrtzidis
28*4f2ecc61SArgyrios Kyrtzidis@interface B2
29*4f2ecc61SArgyrios Kyrtzidis-(id)init NS_DESIGNATED_INITIALIZER;
30*4f2ecc61SArgyrios Kyrtzidis@end
31*4f2ecc61SArgyrios Kyrtzidis
32*4f2ecc61SArgyrios Kyrtzidis@interface S2 : B2
33*4f2ecc61SArgyrios Kyrtzidis-(id)init;
34*4f2ecc61SArgyrios Kyrtzidis@end
35*4f2ecc61SArgyrios Kyrtzidis
36*4f2ecc61SArgyrios Kyrtzidis@implementation S2
37*4f2ecc61SArgyrios Kyrtzidis-(id)init
38*4f2ecc61SArgyrios Kyrtzidis{
39*4f2ecc61SArgyrios Kyrtzidis  self = [super init];
40*4f2ecc61SArgyrios Kyrtzidis  if (self) {
41*4f2ecc61SArgyrios Kyrtzidis  }
42*4f2ecc61SArgyrios Kyrtzidis  return self;
43*4f2ecc61SArgyrios Kyrtzidis}
44*4f2ecc61SArgyrios Kyrtzidis@end
45