linux下编程用 编译软件

源代码在线查看: method-16.mm

软件大小: 49607 K
上传用户: IsABC
关键词: linux 编程 编译 软件
下载地址: 免注册下载 普通下载 VIP

相关代码

								/* Ensure that we indeed cannot obtain the value of a message send				   if the chosen method signature returns 'void'.  There used to				   exist a cheesy hack that allowed it.  While at it, check that				   the first lexically occurring method signature gets picked				   when sending messages to 'id'.  */ 				/* Contributed by Ziemowit Laski   */				/* { dg-do compile } */								#include 								@interface Object1				- (void)initWithData:(Object1 *)data;				@end								@interface Object2				- (id)initWithData:(Object1 *)data;				@end								@interface Object3				- (id)initWithData:(Object2 *)data;				@end								void foo(void) {				  id obj1, obj2 = 0;				  obj2 = [obj1 initWithData: obj2];				     /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 26 } */				     /* { 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:\\(Object2 \\*\\)data." "" { target *-*-* } 21 } */								     /* 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 } */				}							

相关资源