proto-lossage-1.m
来自「linux下的gcc编译器」· M 代码 · 共 44 行
M
44 行
/* Test for situations in which protocol conformance information may be lost, leading to superfluous warnings. *//* Author: Ziemowit Laski <zlaski@apple.com>. *//* { dg-do compile } *//* One-line substitute for objc/objc.h */typedef struct objc_object { struct objc_class *class_pointer; } *id;@protocol NSObject- (int)someValue;@end@interface NSObject <NSObject>@end@protocol PlateMethods- (void)someMethod;@end@interface Foo { NSObject <PlateMethods> *plate; id <PlateMethods> plate1; NSObject *plate2;}- (id <PlateMethods>) getPlate;- (id <NSObject>) getPlate1;- (int) getValue;@end@implementation Foo- (id <PlateMethods>) getPlate { return plate; /* { dg-bogus "does not implement" } */}- (id <NSObject>) getPlate1 { return (id <NSObject>)plate1; /* { dg-bogus "does not conform" } */}- (int) getValue { int i = [plate1 someValue]; /* { dg-warning "not implemented by protocol" } */ int j = [(id <NSObject>)plate1 someValue]; /* { dg-bogus "not implemented by protocol" } */ int k = [(id)plate1 someValue]; /* { dg-bogus "not implemented by protocol" } */ return i + j + k;}@end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?