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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc4/] [gcc/] [testsuite/] [obj-c++.dg/] [method-16.mm] - Diff between revs 308 and 519

Only display areas with differences | Details | Blame | View Log

Rev 308 Rev 519
/* Ensure that we indeed cannot obtain the value of a message send
/* Ensure that we indeed cannot obtain the value of a message send
   if the chosen method signature returns 'void'.  There used to
   if the chosen method signature returns 'void'.  There used to
   exist a cheesy hack that allowed it.  While at it, check that
   exist a cheesy hack that allowed it.  While at it, check that
   the first lexically occurring method signature gets picked
   the first lexically occurring method signature gets picked
   when sending messages to 'id'.  */
   when sending messages to 'id'.  */
/* Contributed by Ziemowit Laski   */
/* Contributed by Ziemowit Laski   */
/* { dg-do compile } */
/* { dg-do compile } */
#include 
#include 
@interface Object1
@interface Object1
- (void)initWithData:(Object1 *)data;
- (void)initWithData:(Object1 *)data;
@end
@end
@interface Object2
@interface Object2
- (id)initWithData:(Object1 *)data;
- (id)initWithData:(Object1 *)data;
@end
@end
@interface Object3
@interface Object3
- (id)initWithData:(Object2 *)data;
- (id)initWithData:(Object2 *)data;
@end
@end
void foo(void) {
void foo(void) {
  id obj1, obj2 = 0;
  id obj1, obj2 = 0;
  obj2 = [obj1 initWithData: obj2];
  obj2 = [obj1 initWithData: obj2];
     /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 26 } */
     /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 26 } */
     /* { dg-warning "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 13 } */
     /* { dg-warning "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 13 } */
     /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 17 } */
     /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 17 } */
     /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } 21 } */
     /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } 21 } */
     /* The following error is a consequence of picking the "wrong" method signature.  */
     /* The following error is a consequence of picking the "wrong" method signature.  */
     /* { dg-error "void value not ignored as it ought to be" "" { target *-*-* } 26 } */
     /* { dg-error "void value not ignored as it ought to be" "" { target *-*-* } 26 } */
}
}
 
 

powered by: WebSVN 2.1.0

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