aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/objc/execute/formal_protocol-7.m
blob: 9e9e730ff70bf539b86ae08e95f33cc07d4ab89d (plain)
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
/* Contributed by Nicola Pero - Fri Mar  9 21:35:47 CET 2001 */

#include <stdlib.h>
#include <objc/Protocol.h>
#include "../../objc-obj-c++-shared/TestsuiteObject.m"

/* Test defining two protocols, one incorporating the other one. */

@protocol Configuring
- (void) configure;
@end

@protocol Processing <Configuring>
- (void) process;
@end

/* A class adopting the protocol */
@interface Test : TestsuiteObject <Processing>
{
  BOOL didConfigure;
  BOOL didProcess;
}
@end

@implementation Test
- (void) configure
{
  didConfigure = YES;
}
- (void) process
{
  didProcess = YES;
}
@end

int main (void)
{
  id <Processing> object = [Test new];

  [object configure];
  [object process];

  return 0;
}