OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [objc.dg/] [comp-types-3.m] - Blame information for rev 716

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 704 jeremybenn
/* Test assignments and comparisons between protocols (obscure case).  */
2
/* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
3
/* { dg-do compile } */
4
#include <objc/objc.h>
5
 
6
@protocol MyProtocolA
7
- (void) methodA;
8
@end
9
 
10
@protocol MyProtocolB
11
- (void) methodB;
12
@end
13
 
14
@protocol MyProtocolAB <MyProtocolA, MyProtocolB>
15
@end
16
 
17
@protocol MyProtocolAC <MyProtocolA>
18
- (void) methodC;
19
@end
20
 
21
int main()
22
{
23
  id<MyProtocolA> obj_a = nil;
24
  id<MyProtocolB> obj_b = nil;
25
  id<MyProtocolAB> obj_ab = nil;
26
  id<MyProtocolAC> obj_ac = nil;
27
 
28
  obj_a = obj_b;  /* { dg-warning "does not conform" } */
29
  obj_a = obj_ab; /* Ok */
30
  obj_a = obj_ac; /* Ok */
31
 
32
  obj_b = obj_a;  /* { dg-warning "does not conform" } */
33
  obj_b = obj_ab; /* Ok */
34
  obj_b = obj_ac; /* { dg-warning "does not conform" } */
35
 
36
  obj_ab = obj_a;  /* { dg-warning "does not conform" } */
37
  obj_ab = obj_b;  /* { dg-warning "does not conform" } */
38
  obj_ab = obj_ac; /* { dg-warning "does not conform" } */
39
 
40
  obj_ac = obj_a;  /* { dg-warning "does not conform" } */
41
  obj_ac = obj_b;  /* { dg-warning "does not conform" } */
42
  obj_ac = obj_ab; /* { dg-warning "does not conform" } */
43
 
44
  if (obj_a == obj_b) ; /* { dg-warning "lacks a cast" } */
45
  if (obj_b == obj_a) ; /* { dg-warning "lacks a cast" } */
46
 
47
  if (obj_a == obj_ab) ; /* Ok */
48
  if (obj_ab == obj_a) ; /* Ok */ /* Spurious 2.95.4 warning here */
49
 
50
  if (obj_a == obj_ac) ; /* Ok */
51
  if (obj_ac == obj_a) ; /* Ok */ /* Spurious 2.95.4 warning here */
52
 
53
  if (obj_b == obj_ab) ; /* Ok */
54
  if (obj_ab == obj_b) ; /* Ok */ /* Spurious 2.95.4 warning here */
55
 
56
  if (obj_b == obj_ac) ; /* { dg-warning "lacks a cast" } */
57
  if (obj_ac == obj_b) ; /* { dg-warning "lacks a cast" } */
58
 
59
  if (obj_ab == obj_ac) ; /* { dg-warning "lacks a cast" } */
60
  if (obj_ac == obj_ab) ; /* { dg-warning "lacks a cast" } */
61
 
62
  return 0;
63
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.